Skip to content

Commit 1bfae17

Browse files
committed
Adding user delete command and unittests
1 parent 0190093 commit 1bfae17

File tree

3 files changed

+49
-0
lines changed

3 files changed

+49
-0
lines changed

SoftLayer/CLI/routes.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -289,6 +289,7 @@
289289
('user:edit-permissions', 'SoftLayer.CLI.user.edit_permissions:cli'),
290290
('user:edit-details', 'SoftLayer.CLI.user.edit_details:cli'),
291291
('user:create', 'SoftLayer.CLI.user.create:cli'),
292+
('user:delete', 'SoftLayer.CLI.user.delete:cli'),
292293

293294
('vlan', 'SoftLayer.CLI.vlan'),
294295
('vlan:detail', 'SoftLayer.CLI.vlan.detail:cli'),

SoftLayer/CLI/user/delete.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
"""Delete user."""
2+
# :license: MIT, see LICENSE for more details.
3+
4+
import click
5+
6+
import SoftLayer
7+
from SoftLayer.CLI import environment
8+
from SoftLayer.CLI import helpers
9+
10+
11+
@click.command()
12+
@click.argument('identifier')
13+
@environment.pass_env
14+
def cli(env, identifier):
15+
"""Delete a User
16+
Example: slcli user delete userId
17+
"""
18+
19+
mgr = SoftLayer.UserManager(env.client)
20+
21+
user_id = helpers.resolve_id(mgr.resolve_ids, identifier, 'username')
22+
23+
user_template = {'userStatusId': 1021}
24+
25+
result = mgr.edit_user(user_id, user_template)
26+
if result:
27+
click.secho("%s deleted successfully" % identifier, fg='green')
28+
else:
29+
click.secho("Failed to delete %s" % identifier, fg='red')

tests/CLI/modules/user_tests.py

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,3 +250,22 @@ def test_edit_details_bad_json(self):
250250
result = self.run_command(['user', 'edit-details', '1234', '-t', '{firstName:"Supermand"}'])
251251
self.assertIn("Argument Error", result.exception.message)
252252
self.assertEqual(result.exit_code, 2)
253+
254+
"""User delete tests"""
255+
@mock.patch('SoftLayer.CLI.user.delete.click')
256+
def test_delete(self, click):
257+
result = self.run_command(['user', 'delete', '12345'])
258+
click.secho.assert_called_with('12345 deleted successfully', fg='green')
259+
self.assert_no_fail(result)
260+
self.assert_called_with('SoftLayer_User_Customer', 'editObject',
261+
args=({'userStatusId': 1021},), identifier=12345)
262+
263+
@mock.patch('SoftLayer.CLI.user.delete.click')
264+
def test_delete_failure(self, click):
265+
mock = self.set_mock('SoftLayer_User_Customer', 'editObject')
266+
mock.return_value = False
267+
result = self.run_command(['user', 'delete', '12345'])
268+
click.secho.assert_called_with('Failed to delete 12345', fg='red')
269+
self.assert_no_fail(result)
270+
self.assert_called_with('SoftLayer_User_Customer', 'editObject',
271+
args=({'userStatusId': 1021},), identifier=12345)

0 commit comments

Comments
 (0)