mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	Fixed #36252 -- Handled duplicate automatic imports in the shell command.
This commit is contained in:
		| @@ -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: | ||||
|   | ||||
		Reference in New Issue
	
	Block a user