(self, args, settings_file=None, apps=None, umask=-1)
| 113 | return paths |
| 114 | |
| 115 | def run_test(self, args, settings_file=None, apps=None, umask=-1): |
| 116 | base_dir = os.path.dirname(self.test_dir) |
| 117 | # The base dir for Django's tests is one level up. |
| 118 | tests_dir = os.path.dirname(os.path.dirname(__file__)) |
| 119 | # The base dir for Django is one level above the test dir. We don't use |
| 120 | # `import django` to figure that out, so we don't pick up a Django |
| 121 | # from site-packages or similar. |
| 122 | django_dir = os.path.dirname(tests_dir) |
| 123 | ext_backend_base_dirs = self._ext_backend_paths() |
| 124 | |
| 125 | # Define a temporary environment for the subprocess |
| 126 | test_environ = os.environ.copy() |
| 127 | |
| 128 | # Set the test environment |
| 129 | if settings_file: |
| 130 | test_environ["DJANGO_SETTINGS_MODULE"] = settings_file |
| 131 | elif "DJANGO_SETTINGS_MODULE" in test_environ: |
| 132 | del test_environ["DJANGO_SETTINGS_MODULE"] |
| 133 | python_path = [base_dir, django_dir, tests_dir] |
| 134 | python_path.extend(ext_backend_base_dirs) |
| 135 | test_environ["PYTHONPATH"] = os.pathsep.join(python_path) |
| 136 | test_environ["PYTHONWARNINGS"] = "" |
| 137 | test_environ["PYTHON_COLORS"] = "0" |
| 138 | |
| 139 | p = subprocess.run( |
| 140 | [sys.executable, *args], |
| 141 | capture_output=True, |
| 142 | cwd=self.test_dir, |
| 143 | env=test_environ, |
| 144 | text=True, |
| 145 | umask=umask, |
| 146 | ) |
| 147 | return p.stdout, p.stderr |
| 148 | |
| 149 | def run_django_admin(self, args, settings_file=None, umask=-1): |
| 150 | return self.run_test(["-m", "django", *args], settings_file, umask=umask) |
no test coverage detected