Skip to content

Commit

Permalink
Merge pull request nlpsandbox#36 from cascadianblue/21-get-set-user
Browse files Browse the repository at this point in the history
21 get set user (fixes)
  • Loading branch information
Connor Boyle authored Jun 23, 2020
2 parents 65127e5 + 714b823 commit 124252b
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 52 deletions.
2 changes: 1 addition & 1 deletion jccli/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ def create_user(ctx, username, email, first_name, last_name, allow_public_key, l
'passwordless_sudo': str(passwordless_sudo),
'sudo': str(sudo)
}
response = api1.create_user(systemuser)
response = json.dumps(api1.create_user(systemuser))
LOGGER.info(f"{response}")


Expand Down
6 changes: 3 additions & 3 deletions jccli/jc_api_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ def create_user(self, systemuser):
accept='application/json',
body=body,
x_org_id='')
return api_response
return api_response.to_dict()
except ApiException as error:
# FIXME: What should this behavior actually be?
raise Exception("Exception when calling SystemusersApi->systemusers_post: %s\n" % error)
Expand Down Expand Up @@ -128,7 +128,7 @@ def get_user(self, username):
users = self.system_users_api.systemusers_list(
accept='application/json',
content_type='application/json'
)
).results

for user in users:
if user.username == username:
Expand All @@ -144,4 +144,4 @@ def set_user(self, username, attributes):
id=user_id,
body=Systemuserput(**attributes)
)
return api_response
return api_response.to_dict()
58 changes: 10 additions & 48 deletions tests/test_jc_api_v1.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
import jcapiv1

# fmt: on
from jcapiv1 import Systemuserreturn
from jcapiv1 import Systemuserreturn, Systemuserslist
from mock import MagicMock, patch, sentinel
from jccli.jc_api_v1 import JumpcloudApiV1
from jccli.errors import SystemUserNotFoundError
Expand Down Expand Up @@ -111,7 +111,8 @@ def test_get_user(self, mock_systemusers_list):
'firstname': 'Angela'
})
]
mock_systemusers_list.return_value = users
response = Systemuserslist(results=users, total_count=len(users))
mock_systemusers_list.return_value = response
api1 = JumpcloudApiV1("fake_key")
firstname = api1.get_user(username='fake_user')['firstname']
assert (
Expand All @@ -132,7 +133,7 @@ def test_get_user_no_id(self, mock_systemusers_list):
email='zekun.wang@david.net'
)
]
mock_systemusers_list.return_value = users
mock_systemusers_list.return_value = Systemuserslist(results=users, total_count=len(users))
api1 = JumpcloudApiV1("fake_key_123")
with pytest.raises(SystemUserNotFoundError):
api1.get_user('angela')
Expand All @@ -141,57 +142,18 @@ def test_get_user_no_id(self, mock_systemusers_list):
@patch.object(JumpcloudApiV1, 'get_user_id')
def test_set_user(self, mock_get_user_id, mock_systemusers_put):
mock_get_user_id.return_value = '1234'
desired_response = """
{'account_locked': False,
'activated': False,
'addresses': [],
'allow_public_key': True,
'attributes': [],
'bad_login_attempts': 0,
'company': None,
'cost_center': None,
'created': '2020-06-10T21:07:58.306Z',
'department': None,
'description': None,
'displayname': None,
'email': 'fake_email123@fake.com',
'employee_identifier': None,
'employee_type': None,
'enable_managed_uid': False,
'enable_user_portal_multifactor': False,
'external_dn': None,
'external_source_type': None,
'externally_managed': False,
user = Systemuserreturn(**{
'email': 'updated_fake_email123@fake.com',
'firstname': 'JC',
'id': '5ee14bae31771d77fbd4c0e0',
'job_title': None,
'lastname': 'Tester3',
'ldap_binding_user': False,
'location': None,
'mfa': {'configured': False, 'exclusion': False, 'exclusion_until': None},
'middlename': None,
'organization': '5ed6df30e9602018390490be',
'password_expiration_date': None,
'password_expired': False,
'password_never_expires': False,
'passwordless_sudo': False,
'phone_numbers': [],
'public_key': None,
'relationships': [],
'samba_service_user': False,
'ssh_keys': [],
'sudo': False,
'tags': None,
'totp_enabled': False,
'unix_guid': 5010,
'unix_uid': 5010,
'username': 'jctester4'}
"""
mock_systemusers_put.return_value = desired_response
'username': 'jctester4'
})
mock_systemusers_put.return_value = user
api1 = JumpcloudApiV1("fake_key_123")
api_response = api1.set_user("fake_user", {'email': 'updated_fake_email@fakesite.com'})
assert (
api_response == desired_response
api_response == user.to_dict()
), "set_user did not correctly call the systemusers_put API method"

@patch.object(JumpcloudApiV1, 'get_users')
Expand Down

0 comments on commit 124252b

Please sign in to comment.