def test_unchanged(self, client, params, check_mode):
     client.adapter.register_uri(
         'GET',
         'https://errata.devel.redhat.com/api/v1/user/[email protected]',
         json=USER)
     result = ensure_user(client, params, check_mode)
     assert result == {'changed': False, 'stdout_lines': []}
 def test_receives_mail_includes_email_address(self, client, params):
     """
     When the user wants to keep "receives_mail: true", we must always send
     the email_address attribute in every PUT call. CLOUDWF-2817
     """
     user = deepcopy(USER)
     user['receives_mail'] = True
     params['receives_mail'] = True
     # Test changing an unrelated attribute (realname) here:
     params['realname'] = 'Mr. Name Changer'
     client.adapter.register_uri(
         'GET',
         'https://errata.devel.redhat.com/api/v1/user/[email protected]',
         json=user)
     client.adapter.register_uri(
         'PUT',
         'https://errata.devel.redhat.com/api/v1/user/123456',
         status_code=200)
     check_mode = False
     result = ensure_user(client, params, check_mode)
     assert result['changed'] is True
     assert result['stdout_lines'] == [
         'changing realname from Me Myself '
         'to Mr. Name Changer'
     ]
     history = client.adapter.request_history
     assert len(history) == 2
     expected = {
         'email_address': '*****@*****.**',
         'realname': 'Mr. Name Changer',
     }
     assert history[1].json() == expected
 def test_create_check_mode(self, client, params):
     client.adapter.register_uri(
         'GET',
         'https://errata.devel.redhat.com/api/v1/user/[email protected]',
         status_code=500)
     check_mode = True
     result = ensure_user(client, params, check_mode)
     expected = {
         'changed': True,
         'stdout_lines': ['created [email protected] user']
     }
     assert result == expected
 def test_no_roles_change(self, client, params):
     """
     If a playbook author omits "roles", we should not change the existing
     value on the server.
     """
     # Ansible will default "roles" to "None":
     params['roles'] = None
     client.adapter.register_uri(
         'GET',
         'https://errata.devel.redhat.com/api/v1/user/[email protected]',
         json=USER)
     # On the server, "roles" is ['devel']:
     assert USER['roles'] == ['devel']
     check_mode = False
     result = ensure_user(client, params, check_mode)
     assert result == {'changed': False, 'stdout_lines': []}
Пример #5
0
 def test_no_organization_change(self, client, params, user):
     """
     If a playbook author omits "organization", we should not change
     the existing value on the server.
     """
     # Ansible will default "organization" to "None":
     params['organization'] = None
     client.adapter.register_uri(
         'GET',
         'https://errata.devel.redhat.com/api/v1/user/[email protected]',
         json=user)
     # On the server, "organization" is "Engineering":
     assert user['organization'] == 'Engineering'
     check_mode = False
     result = ensure_user(client, params, check_mode)
     assert result == {'changed': False, 'stdout_lines': []}
Пример #6
0
 def test_edit(self, client, params, user):
     user['roles'] = ['pm']
     client.adapter.register_uri(
         'GET',
         'https://errata.devel.redhat.com/api/v1/user/[email protected]',
         json=user)
     client.adapter.register_uri(
         'PUT',
         'https://errata.devel.redhat.com/api/v1/user/123456',
         status_code=200)
     check_mode = False
     result = ensure_user(client, params, check_mode)
     expected_stdout_lines = ["changing roles from ['pm'] to ['devel']"]
     if PY2:
         expected_stdout_lines = [
             "changing roles from [u'pm'] to ['devel']"
         ]
     assert result['changed'] is True
     assert set(result['stdout_lines']) == set(expected_stdout_lines)
Пример #7
0
 def test_create(self, client, params):
     client.adapter.register_uri(
         'GET',
         'https://errata.devel.redhat.com/api/v1/user/[email protected]',
         json={'errors': {
             'login_name': '[email protected] not found.'
         }},
         status_code=400)
     client.adapter.register_uri(
         'POST',
         'https://errata.devel.redhat.com/api/v1/user',
         status_code=201)
     check_mode = False
     result = ensure_user(client, params, check_mode)
     expected = {
         'changed': True,
         'stdout_lines': ['created [email protected] user']
     }
     assert result == expected