@@ -198,11 +198,13 @@ def test_uses_detect_if_django_version_not_specified(self, project_with_mock_vir
198198class TestRunStartproject :
199199 def test_creates_folder (self , mock_subprocess , fake_home , virtualenvs_folder ):
200200 project = DjangoProject ("mydomain.com" , "python.version" )
201+ project .virtualenv .get_version = Mock (return_value = "1.0" )
201202 project .run_startproject (nuke = False )
202203 assert (fake_home / "mydomain.com" ).is_dir ()
203204
204- def test_calls_startproject (self , mock_subprocess , fake_home , virtualenvs_folder ):
205+ def test_calls_startproject_for_older_django (self , mock_subprocess , fake_home , virtualenvs_folder ):
205206 project = DjangoProject ("mydomain.com" , "python.version" )
207+ project .virtualenv .get_version = Mock (return_value = "3.9" )
206208 project .run_startproject (nuke = False )
207209 assert mock_subprocess .check_call .call_args == call (
208210 [
@@ -213,18 +215,34 @@ def test_calls_startproject(self, mock_subprocess, fake_home, virtualenvs_folder
213215 ]
214216 )
215217
218+
219+ def test_calls_startproject_for_newer_django (self , mock_subprocess , fake_home , virtualenvs_folder ):
220+ project = DjangoProject ("mydomain.com" , "python.version" )
221+ project .virtualenv .get_version = Mock (return_value = "4.0" )
222+ project .run_startproject (nuke = False )
223+ assert mock_subprocess .check_call .call_args == call (
224+ [
225+ str (Path (project .virtualenv .path / "bin/django-admin" )),
226+ "startproject" ,
227+ "mysite" ,
228+ str (fake_home / "mydomain.com" ),
229+ ]
230+ )
231+
216232 def test_nuke_option_deletes_directory_first (self , mock_subprocess , fake_home , virtualenvs_folder ):
217233 project = DjangoProject ("mydomain.com" , "python.version" )
218234 (fake_home / project .domain ).mkdir ()
219235 old_file = fake_home / project .domain / "old_file.py"
220236 old_file .write_text ("old stuff" )
237+ project .virtualenv .get_version = Mock (return_value = "1.0" )
221238
222239 project .run_startproject (nuke = True )
223240
224241 assert not old_file .exists ()
225242
226243 def test_nuke_option_handles_directory_not_existing (self , mock_subprocess , fake_home , virtualenvs_folder ):
227244 project = DjangoProject ("mydomain.com" , "python.version" )
245+ project .virtualenv .get_version = Mock (return_value = "1.0" )
228246 project .run_startproject (nuke = True ) # should not raise
229247
230248
0 commit comments