MCPcopy
hub / github.com/django/django / run_test

Method run_test

tests/admin_scripts/tests.py:115–147  ·  view source on GitHub ↗
(self, args, settings_file=None, apps=None, umask=-1)

Source from the content-addressed store, hash-verified

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)

Callers 3

run_django_adminMethod · 0.95
run_manageMethod · 0.95

Calls 5

_ext_backend_pathsMethod · 0.95
extendMethod · 0.80
copyMethod · 0.45
joinMethod · 0.45
runMethod · 0.45

Tested by

no test coverage detected