Skip to content

Commit b065939

Browse files
Merge pull request #1014 from acamacho82/Issue-1008
Adding user delete command and unittests
2 parents 0190093 + de21d24 commit b065939

File tree

3 files changed

+52
-0
lines changed

3 files changed

+52
-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: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
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+
"""Sets a user's status to CANCEL_PENDING, which will immediately disable the account,
16+
17+
and will eventually be fully removed from the account by an automated internal process.
18+
19+
Example: slcli user delete userId
20+
"""
21+
22+
mgr = SoftLayer.UserManager(env.client)
23+
24+
user_id = helpers.resolve_id(mgr.resolve_ids, identifier, 'username')
25+
26+
user_template = {'userStatusId': 1021}
27+
28+
result = mgr.edit_user(user_id, user_template)
29+
if result:
30+
click.secho("%s deleted successfully" % identifier, fg='green')
31+
else:
32+
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)