fix the tower_user module to update the fields properly

This commit is contained in:
Nikhil Jain 2021-03-11 19:14:50 +05:30
parent e8b2072ea5
commit 80023017a2
2 changed files with 28 additions and 7 deletions

View File

@ -149,19 +149,19 @@ def main():
# Create the data that gets sent for create and update
new_fields = {}
if username:
if username is not None:
new_fields['username'] = module.get_item_name(existing_item) if existing_item else username
if first_name:
if first_name is not None:
new_fields['first_name'] = first_name
if last_name:
if last_name is not None:
new_fields['last_name'] = last_name
if email:
if email is not None:
new_fields['email'] = email
if is_superuser:
if is_superuser is not None:
new_fields['is_superuser'] = is_superuser
if is_system_auditor:
if is_system_auditor is not None:
new_fields['is_system_auditor'] = is_system_auditor
if password:
if password is not None:
new_fields['password'] = password
# If the state was present and we can let the module build or update the existing item, this will return on its own

View File

@ -57,3 +57,24 @@ def test_update_password_on_create(run_module, admin_user, mock_auth_stuff):
assert not result.get('failed', False), result.get('msg', result)
assert not result.get('changed')
@pytest.mark.django_db
def test_update_user(run_module, admin_user, mock_auth_stuff):
    result = run_module('tower_user', dict(
        username='Bob',
        password='pass4word',
        is_system_auditor=True
    ), admin_user)
    assert not result.get('failed', False), result.get('msg', result)
    assert result.get('changed'), result
    update_result =     result = run_module('tower_user', dict(
        username='Bob',
        password='pass4word',
        is_system_auditor=False
    ), admin_user)
    assert update_result.get('changed')
    user = User.objects.get(id=result['id'])
    assert not user.is_system_auditor