Explorar o código

Fixed discovery of the Django installation during tests.

If Django was symlinked into site-packages the previous approach to discover
the tests subdirectory would fail. The revised version now always points to
the location of the source and not the import path.
Florian Apolloner %!s(int64=12) %!d(string=hai) anos
pai
achega
33234aa8f7
Modificáronse 1 ficheiros con 6 adicións e 3 borrados
  1. 6 3
      tests/admin_scripts/tests.py

+ 6 - 3
tests/admin_scripts/tests.py

@@ -106,9 +106,12 @@ class AdminScriptTestCase(unittest.TestCase):
     def run_test(self, script, args, settings_file=None, apps=None):
         project_dir = test_dir
         base_dir = os.path.dirname(test_dir)
-        import django
-        django_dir = os.path.dirname(os.path.dirname(django.__file__))
-        tests_dir = os.path.join(django_dir, 'tests')
+        # The base dir for Django's tests is one level up.
+        tests_dir = os.path.dirname(os.path.dirname(__file__))
+        # The base dir for Django is one level above the test dir. We don't use
+        # `import django` to figure that out, so we don't pick up a Django
+        # from site-packages or similar.
+        django_dir = os.path.dirname(tests_dir)
         ext_backend_base_dirs = self._ext_backend_paths()
 
         # Remember the old environment