@@ -16,16 +16,30 @@ class TestProjectCLI(unittest.TestCase):
1616 def setUp (self ):
1717 self .runner = CliRunner ()
1818
19+ def test_new_project_wizard_no_network_volumes (self ):
20+ '''
21+ Tests the new_project_wizard command with no network volumes.
22+ '''
23+ with patch ('runpod.cli.groups.project.commands.get_user' ) as mock_get_user :
24+ mock_get_user .return_value = {'networkVolumes' :[]}
25+
26+ result = self .runner .invoke (new_project_wizard )
27+
28+ self .assertEqual (result .exit_code , 1 )
29+ self .assertIn ("You do not have any network volumes." , result .output )
1930
2031 def test_new_project_wizard_success (self ):
2132 '''
2233 Tests the new_project_wizard command.
2334 '''
2435 with patch ('click.prompt' ) as mock_prompt , \
2536 patch ('click.confirm' , return_value = True ) as mock_confirm , \
26- patch ('runpod.cli.groups.project.commands.create_new_project' ) as mock_create :
27-
28- mock_prompt .side_effect = ['TestProject' , 'XYZ_VOLUME' , '3.10' ]
37+ patch ('runpod.cli.groups.project.commands.create_new_project' ) as mock_create , \
38+ patch ('runpod.cli.groups.project.commands.get_user' ) as mock_get_user , \
39+ patch ('runpod.cli.groups.project.commands.cli_select' ) as mock_select :
40+ mock_get_user .return_value = {'networkVolumes' :[{ 'id' : 'XYZ_VOLUME' , 'name' : 'XYZ_VOLUME' , 'size' : 100 , 'dataCenterId' : 'XYZ' }]} # pylint: disable=line-too-long
41+ mock_prompt .side_effect = ['TestProject' , '3.10' ]
42+ mock_select .return_value = {'volume-id' : 'XYZ_VOLUME' }
2943
3044 result = self .runner .invoke (new_project_wizard , ['--type' , 'llama2' , '--model' , 'meta-llama/Llama-2-7b' ]) # pylint: disable=line-too-long
3145
@@ -43,8 +57,11 @@ def test_new_project_wizard_success_init_current_dir(self):
4357 with patch ('click.prompt' ) as mock_prompt , \
4458 patch ('click.confirm' , return_value = True ) as mock_confirm , \
4559 patch ('runpod.cli.groups.project.commands.create_new_project' ) as mock_create , \
60+ patch ('runpod.cli.groups.project.commands.get_user' ) as mock_get_user , \
61+ patch ('runpod.cli.groups.project.commands.cli_select' ) as mock_select , \
4662 patch ('os.getcwd' ) as mock_getcwd :
47-
63+ mock_get_user .return_value = {'networkVolumes' :[{ 'id' : 'XYZ_VOLUME' , 'name' : 'XYZ_VOLUME' , 'size' : 100 , 'dataCenterId' : 'XYZ' }]} # pylint: disable=line-too-long
64+ mock_select .return_value = {'volume-id' : 'XYZ_VOLUME' }
4865 mock_prompt .side_effect = ['XYZ_VOLUME' , '3.10' ]
4966
5067 self .runner .invoke (new_project_wizard , ['--init' ])
@@ -56,7 +73,10 @@ def test_new_project_wizard_invalid_name(self):
5673 '''
5774 Tests the new_project_wizard command with an invalid project name.
5875 '''
59- result = self .runner .invoke (new_project_wizard , ['--name' , 'Invalid/Name' ])
76+ with patch ('runpod.cli.groups.project.commands.get_user' ) as mock_get_user :
77+ mock_get_user .return_value = {'networkVolumes' :["XYZ_VOLUME" ]}
78+
79+ result = self .runner .invoke (new_project_wizard , ['--name' , 'Invalid/Name' ])
6080
6181 self .assertEqual (result .exit_code , 2 )
6282 self .assertIn ("Project name contains an invalid character" , result .output )
0 commit comments