Various fixes for updating existing gitlab users (#1724)

* fixes various issues related to updating an ...

... existing gitlab user, in detail:

  - fixes updating admin status not working
  - fixes user passwords not updated
  - fixes confirmation skipping param ignored for user updates
  - added tests for code changes

* fixing sanity issues

* fixing sanity issues 02

* fixing sanity issues 03

* fixing sanity issues 04

* fixing unit test failures

* fixing unit test failures 02

* add changelog fragment

* fixing unit test failures 03

* forgot to add changelog fragment

* fix changelog sanity issues

* fix changelog sanity issues 02

* incorporate review suggestions

Co-authored-by: Mirko Wilhelmi <Mirko.Wilhelmi@sma.de>
This commit is contained in:
morco 2021-02-09 10:29:13 +01:00 committed by GitHub
parent 909ac92fe2
commit c03ae754d2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 271 additions and 22 deletions

View file

@ -88,16 +88,33 @@ class TestGitlabUser(GitlabModuleTestCase):
@with_httmock(resp_get_user)
def test_update_user(self):
user = self.gitlab_instance.users.get(1)
changed, newUser = self.moduleUtil.updateUser(user, {'name': "Jack Smith", "is_admin": "true"})
changed, newUser = self.moduleUtil.updateUser(
user,
{'name': {'value': "Jack Smith"}, "is_admin": {'value': "true", 'setter': 'admin'}}, {}
)
self.assertEqual(changed, True)
self.assertEqual(newUser.name, "Jack Smith")
self.assertEqual(newUser.is_admin, "true")
self.assertEqual(newUser.admin, "true")
changed, newUser = self.moduleUtil.updateUser(user, {'name': "Jack Smith"})
changed, newUser = self.moduleUtil.updateUser(user, {'name': {'value': "Jack Smith"}}, {})
self.assertEqual(changed, False)
changed, newUser = self.moduleUtil.updateUser(
user,
{}, {
'skip_reconfirmation': {'value': True},
'password': {'value': 'super_secret-super_secret'},
}
)
# note: uncheckable parameters dont set changed state
self.assertEqual(changed, False)
self.assertEqual(newUser.skip_reconfirmation, True)
self.assertEqual(newUser.password, 'super_secret-super_secret')
@with_httmock(resp_find_user)
@with_httmock(resp_delete_user)
def test_delete_user(self):