mirror of
https://github.com/django/django.git
synced 2025-04-08 15:36:47 +00:00
Fixed #36252 -- Handled duplicate automatic imports in the shell command.
This commit is contained in:
parent
1823a80113
commit
e804a07d76
@ -185,8 +185,8 @@ class Command(BaseCommand):
|
||||
else:
|
||||
module = None
|
||||
name = path
|
||||
|
||||
auto_imports[module].append((name, obj))
|
||||
if (name, obj) not in auto_imports[module]:
|
||||
auto_imports[module].append((name, obj))
|
||||
|
||||
namespace = {
|
||||
name: obj for items in auto_imports.values() for name, obj in items
|
||||
|
@ -55,7 +55,8 @@ Running this customized ``shell`` command with ``verbosity=2`` would show:
|
||||
from django.urls import resolve, reverse
|
||||
|
||||
If an overridden ``shell`` command includes paths that cannot be imported,
|
||||
these errors are shown when ``verbosity`` is set to ``1`` or higher.
|
||||
these errors are shown when ``verbosity`` is set to ``1`` or higher. Duplicate
|
||||
imports are automatically handled.
|
||||
|
||||
Note that automatic imports can be disabled for a specific ``shell`` session
|
||||
using the :option:`--no-imports <shell --no-imports>` flag. To permanently
|
||||
|
@ -303,11 +303,16 @@ class ShellCommandAutoImportsTestCase(SimpleTestCase):
|
||||
def test_message_with_stdout_listing_objects_with_isort_not_installed(self):
|
||||
class TestCommand(shell.Command):
|
||||
def get_auto_imports(self):
|
||||
# Include duplicate import strings to ensure proper handling,
|
||||
# independent of isort's deduplication (#36252).
|
||||
return super().get_auto_imports() + [
|
||||
"django.urls.reverse",
|
||||
"django.urls.resolve",
|
||||
"shell",
|
||||
"django",
|
||||
"django.urls.reverse",
|
||||
"shell",
|
||||
"django",
|
||||
]
|
||||
|
||||
with captured_stdout() as stdout:
|
||||
|
Loading…
x
Reference in New Issue
Block a user