mirror of
				https://github.com/django/django.git
				synced 2025-10-31 09:41:08 +00:00 
			
		
		
		
	Fixed #30479 -- Fixed detecting changes in manage.py by autoreloader when using StatReloader.
Regression in c8720e7696.
			
			
This commit is contained in:
		
				
					committed by
					
						 Mariusz Felisiak
						Mariusz Felisiak
					
				
			
			
				
	
			
			
			
						parent
						
							df46b329e0
						
					
				
				
					commit
					b2790f74d4
				
			| @@ -114,7 +114,15 @@ def iter_modules_and_files(modules, extra_files): | ||||
|         # During debugging (with PyDev) the 'typing.io' and 'typing.re' objects | ||||
|         # are added to sys.modules, however they are types not modules and so | ||||
|         # cause issues here. | ||||
|         if not isinstance(module, ModuleType) or getattr(module, '__spec__', None) is None: | ||||
|         if not isinstance(module, ModuleType): | ||||
|             continue | ||||
|         if module.__name__ == '__main__': | ||||
|             # __main__ (usually manage.py) doesn't always have a __spec__ set. | ||||
|             # Handle this by falling back to using __file__, resolved below. | ||||
|             # See https://docs.python.org/reference/import.html#main-spec | ||||
|             sys_file_paths.append(module.__file__) | ||||
|             continue | ||||
|         if getattr(module, '__spec__', None) is None: | ||||
|             continue | ||||
|         spec = module.__spec__ | ||||
|         # Modules could be loaded from places without a concrete location. If | ||||
|   | ||||
| @@ -18,3 +18,6 @@ Bugfixes | ||||
| * Fixed a regression in Django 2.2.1 where | ||||
|   :class:`~django.contrib.postgres.search.SearchVector` generates SQL with a | ||||
|   redundant ``Coalesce`` call (:ticket:`30488`). | ||||
|  | ||||
| * Fixed a regression in Django 2.2 where auto-reloader doesn't detect changes | ||||
|   in ``manage.py`` file when using ``StatReloader`` (:ticket:`30479`). | ||||
|   | ||||
| @@ -132,6 +132,10 @@ class TestIterModulesAndFiles(SimpleTestCase): | ||||
|         del module.__spec__ | ||||
|         self.assertEqual(autoreload.iter_modules_and_files((module,), frozenset()), frozenset()) | ||||
|  | ||||
|     def test_main_module_is_resolved(self): | ||||
|         main_module = sys.modules['__main__'] | ||||
|         self.assertFileFound(Path(main_module.__file__)) | ||||
|  | ||||
|  | ||||
| class TestCommonRoots(SimpleTestCase): | ||||
|     def test_common_roots(self): | ||||
|   | ||||
		Reference in New Issue
	
	Block a user