|
14 | 14 | from io import StringIO |
15 | 15 | from unittest import mock |
16 | 16 |
|
17 | | -import django |
18 | 17 | from django import conf, get_version |
19 | 18 | from django.conf import settings |
20 | 19 | from django.core.management import ( |
@@ -125,8 +124,7 @@ def run_test(self, args, settings_file=None, apps=None): |
125 | 124 | return p.stdout, p.stderr |
126 | 125 |
|
127 | 126 | def run_django_admin(self, args, settings_file=None): |
128 | | - script_dir = os.path.abspath(os.path.join(os.path.dirname(django.__file__), 'bin')) |
129 | | - return self.run_test([os.path.join(script_dir, 'django-admin.py'), *args], settings_file) |
| 127 | + return self.run_test(['-m', 'django', *args], settings_file) |
130 | 128 |
|
131 | 129 | def run_manage(self, args, settings_file=None, manage_py=None): |
132 | 130 | template_manage_py = ( |
@@ -1898,7 +1896,12 @@ def test_simple_project(self): |
1898 | 1896 | # running again.. |
1899 | 1897 | out, err = self.run_django_admin(args) |
1900 | 1898 | self.assertNoOutput(out) |
1901 | | - self.assertOutput(err, "already exists") |
| 1899 | + self.assertOutput( |
| 1900 | + err, |
| 1901 | + "CommandError: 'testproject' conflicts with the name of an " |
| 1902 | + "existing Python module and cannot be used as a project name. " |
| 1903 | + "Please try another name.", |
| 1904 | + ) |
1902 | 1905 |
|
1903 | 1906 | def test_invalid_project_name(self): |
1904 | 1907 | "Make sure the startproject management command validates a project name" |
@@ -2160,8 +2163,10 @@ def test_importable_target_name(self): |
2160 | 2163 | ) |
2161 | 2164 |
|
2162 | 2165 | def test_overlaying_app(self): |
2163 | | - self.run_django_admin(['startapp', 'app1']) |
2164 | | - out, err = self.run_django_admin(['startapp', 'app2', 'app1']) |
| 2166 | + # Use a subdirectory so it is outside the PYTHONPATH. |
| 2167 | + os.makedirs(os.path.join(self.test_dir, 'apps/app1')) |
| 2168 | + self.run_django_admin(['startapp', 'app1', 'apps/app1']) |
| 2169 | + out, err = self.run_django_admin(['startapp', 'app2', 'apps/app1']) |
2165 | 2170 | self.assertOutput( |
2166 | 2171 | err, |
2167 | 2172 | "already exists. Overlaying an app into an existing directory " |
@@ -2261,11 +2266,6 @@ def test_pks_parsing(self): |
2261 | 2266 | class MainModule(AdminScriptTestCase): |
2262 | 2267 | """python -m django works like django-admin.""" |
2263 | 2268 |
|
2264 | | - def test_runs_django_admin(self): |
2265 | | - cmd_out, _ = self.run_django_admin(['--version']) |
2266 | | - mod_out, _ = self.run_test(['-m', 'django', '--version']) |
2267 | | - self.assertEqual(mod_out, cmd_out) |
2268 | | - |
2269 | 2269 | def test_program_name_in_help(self): |
2270 | 2270 | out, err = self.run_test(['-m', 'django', 'help']) |
2271 | 2271 | self.assertOutput(out, "Type 'python -m django help <subcommand>' for help on a specific subcommand.") |
|
0 commit comments