@@ -71,15 +71,15 @@ class TestDeploymentsList(object):
7171 LIST_WITH_FILTER_REQUEST_JSON = {"filter" : {"where" : {"and" : [{"state" : "Stopped" }]}}}
7272 LIST_WITH_FILTER_RESPONSE_JSON_WHEN_NO_DEPLOYMENTS_FOUND = {"deploymentList" : [], "total" : 17 , "displayTotal" : 0 ,
7373 "runningTotal" : 0 }
74- DETAILS_STDOUT = """+-------+-----------------+----------------------------------------------------------------------------------+---------------+---------------------------+
75- | Name | ID | Endpoint | Api Type | Deployment Type |
76- +-------+-----------------+----------------------------------------------------------------------------------+---------------+---------------------------+
77- | keton | dev61ity7lx232 | https://development-services.paperspace.io/model-serving/dev61ity7lx232:predict | some_api_type | Tensorflow Serving on K8s |
78- | keton | desanw1jptk7woh | https://development-services.paperspace.io/model-serving/desanw1jptk7woh:predict | REST | Tensorflow Serving on K8s |
79- | keton | desfnnrqt1v633v | https://development-services.paperspace.io/model-serving/desfnnrqt1v633v:predict | REST | Tensorflow Serving on K8s |
80- | keton | desdyn55d2e02su | https://development-services.paperspace.io/model-serving/desdyn55d2e02su:predict | REST | Tensorflow Serving on K8s |
81- | keton | des3tmqa3s627o9 | https://development-services.paperspace.io/model-serving/des3tmqa3s627o9:predict | REST | Tensorflow Serving on K8s |
82- +-------+-----------------+----------------------------------------------------------------------------------+---------------+---------------------------+
74+ DETAILS_STDOUT = """+----------- +-----------------+----------------------------------------------------------------------------------+---------------+---------------------------+
75+ | Name | ID | Endpoint | Api Type | Deployment Type |
76+ +----------- +-----------------+----------------------------------------------------------------------------------+---------------+---------------------------+
77+ | some_name | dev61ity7lx232 | https://development-services.paperspace.io/model-serving/dev61ity7lx232:predict | some_api_type | Tensorflow Serving on K8s |
78+ | some_name | desanw1jptk7woh | https://development-services.paperspace.io/model-serving/desanw1jptk7woh:predict | REST | Tensorflow Serving on K8s |
79+ | some_name | desfnnrqt1v633v | https://development-services.paperspace.io/model-serving/desfnnrqt1v633v:predict | REST | Tensorflow Serving on K8s |
80+ | some_name | desdyn55d2e02su | https://development-services.paperspace.io/model-serving/desdyn55d2e02su:predict | REST | Tensorflow Serving on K8s |
81+ | some_name | des3tmqa3s627o9 | https://development-services.paperspace.io/model-serving/des3tmqa3s627o9:predict | REST | Tensorflow Serving on K8s |
82+ +----------- +-----------------+----------------------------------------------------------------------------------+---------------+---------------------------+
8383"""
8484
8585 @mock .patch ("paperspace.cli.deployments_commands.client.requests.get" )
@@ -127,3 +127,109 @@ def test_should_send_get_request_and_print_list_of_deployments_filtered_with_sta
127127 result = runner .invoke (cli .cli , self .COMMAND_WITH_FILTER_WITH_STATE )
128128
129129 assert result .output == "No deployments found\n "
130+
131+
132+ class TestDeploymentsUpdate (object ):
133+ URL = "https://api.paperspace.io/deployments/updateDeployment/"
134+ COMMAND = [
135+ "deployments" , "update" ,
136+ "--id" , "some_id" ,
137+ "--name" , "new_name" ,
138+ ]
139+ BASIC_OPTIONS_REQUEST_JSON = {"upd" : {"name" : u"new_name" }, "id" : u"some_id" }
140+
141+ RESPONSE_JSON_200 = {"upd" : {"name" : u"asd" }, "id" : u"dennaw0wzbvvg3" }
142+ EXPECTED_STDOUT = "Deployment model updated.\n "
143+
144+ RESPONSE_JSON_400 = {"error" : {"name" : "Error" , "status" : 400 , "message" : "Unable to access deployment" }}
145+ EXPECTED_STDOUT_WITH_WRONG_ID = "Unable to access deployment\n "
146+
147+ @mock .patch ("paperspace.cli.deployments_commands.client.requests.post" )
148+ def test_should_send_proper_data_and_print_message_when_update_deployment (self , post_patched ):
149+ post_patched .return_value = MockResponse (self .RESPONSE_JSON_200 , 200 , "fake content" )
150+
151+ runner = CliRunner ()
152+ result = runner .invoke (cli .cli , self .COMMAND )
153+
154+ post_patched .assert_called_once_with (self .URL ,
155+ headers = EXPECTED_HEADERS ,
156+ json = self .BASIC_OPTIONS_REQUEST_JSON ,
157+ params = None )
158+ assert result .output == self .EXPECTED_STDOUT
159+ assert result .exit_code == 0
160+
161+ @mock .patch ("paperspace.cli.deployments_commands.client.requests.post" )
162+ def test_should_send_proper_data_and_print_message_when_update_deployment_used_with_wrong_id (self , post_patched ):
163+ post_patched .return_value = MockResponse (self .RESPONSE_JSON_400 , 400 , "fake content" )
164+
165+ runner = CliRunner ()
166+ result = runner .invoke (cli .cli , self .COMMAND )
167+
168+ post_patched .assert_called_once_with (self .URL ,
169+ headers = EXPECTED_HEADERS ,
170+ json = self .BASIC_OPTIONS_REQUEST_JSON ,
171+ params = None )
172+ assert result .output == self .EXPECTED_STDOUT_WITH_WRONG_ID
173+ assert result .exit_code == 0
174+
175+
176+ class TestStartDeployment (object ):
177+ URL = "https://api.paperspace.io/deployments/updateDeployment/"
178+ COMMAND = ["deployments" , "start" ,
179+ "--id" , "some_id" ]
180+ REQUEST_JSON = {"isRunning" : True , "id" : u"some_id" }
181+ EXPECTED_STDOUT = "Deployment started\n "
182+
183+ @mock .patch ("paperspace.cli.deployments_commands.client.requests.post" )
184+ def test_should_send_proper_data_and_print_message_when_deployments_start_was_used (self , post_patched ):
185+ post_patched .return_value = MockResponse (None , 204 , "fake content" )
186+
187+ runner = CliRunner ()
188+ result = runner .invoke (cli .cli , self .COMMAND )
189+
190+ post_patched .assert_called_once_with (self .URL ,
191+ headers = EXPECTED_HEADERS ,
192+ json = self .REQUEST_JSON ,
193+ params = None )
194+ assert result .output == self .EXPECTED_STDOUT
195+ assert result .exit_code == 0
196+
197+
198+ class TestDeleteDeployment (object ):
199+ URL = "https://api.paperspace.io/deployments/updateDeployment/"
200+ COMMAND = ["deployments" , "delete" ,
201+ "--id" , "some_id" ]
202+
203+ REQUEST_JSON = {"upd" : {"isDeleted" : True }, "id" : u"some_id" }
204+ EXPECTED_STDOUT = "Deployment deleted.\n "
205+
206+ RESPONSE_JSON_400 = {"error" : {"name" : "Error" , "status" : 400 , "message" : "Unable to access deployment" }}
207+ EXPECTED_STDOUT_WITH_WRONG_ID = "Unable to access deployment\n "
208+
209+ @mock .patch ("paperspace.cli.deployments_commands.client.requests.post" )
210+ def test_should_send_proper_data_and_print_message_when_deployments_delete_was_used (self , post_patched ):
211+ post_patched .return_value = MockResponse (None , 204 , "fake content" )
212+
213+ runner = CliRunner ()
214+ result = runner .invoke (cli .cli , self .COMMAND )
215+
216+ post_patched .assert_called_once_with (self .URL ,
217+ headers = EXPECTED_HEADERS ,
218+ json = self .REQUEST_JSON ,
219+ params = None )
220+ assert result .output == self .EXPECTED_STDOUT
221+ assert result .exit_code == 0
222+
223+ @mock .patch ("paperspace.cli.deployments_commands.client.requests.post" )
224+ def test_should_send_proper_data_and_print_message_when_deployments_delete_used_with_wrong_id (self , post_patched ):
225+ post_patched .return_value = MockResponse (self .RESPONSE_JSON_400 , 400 , "fake content" )
226+
227+ runner = CliRunner ()
228+ result = runner .invoke (cli .cli , self .COMMAND )
229+
230+ post_patched .assert_called_once_with (self .URL ,
231+ headers = EXPECTED_HEADERS ,
232+ json = self .REQUEST_JSON ,
233+ params = None )
234+ assert result .output == self .EXPECTED_STDOUT_WITH_WRONG_ID
235+ assert result .exit_code == 0
0 commit comments