def test_when_password_is_set_we_ignore_hash(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') p_mock = mocker.patch.object(user, 'update_password') p_mock.return_value = True h_mock = mocker.patch.object(user, 'update_password_hash') user.sync(dict(old='data'), client, '/path', dict(username='******', password='******', password_hash='hash'), False) p_mock.assert_called_once() h_mock.assert_not_called()
def test_disabled_current_object_present_check(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"current": "data"}') client.delete.return_value = http.Response(204, '') changed, object = user.sync({}, 'disabled', client, '/path', {}, True) assert changed is True assert object is not None client.delete.assert_not_called()
def test_no_current_object_check(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') changed, object = user.sync(None, 'disabled', client, '/path', {'my': 'data'}, True) assert changed is True assert {'my': 'data'} == object client.put.assert_not_called()
def test_no_current_object_check(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') changed, result = user.sync(None, client, '/path', {'password_hash': 'data'}, True) assert changed is True assert {} == result client.put.assert_not_called()
def test_no_current_object(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') client.put.return_value = http.Response(201, '') changed, result = user.sync(None, client, '/path', {'password': '******'}, False) assert changed is True assert {'new': 'data'} == result client.put.assert_called_once_with('/path', {'password': '******'})
def test_password_hash_update_check_mode(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') mock = mocker.patch.object(user, 'update_password_hash') mock.return_value = True changed, result = user.sync( dict(old='data'), client, '/path', dict(username='******', password_hash='pass'), True) assert changed is True assert dict(old='data', username='******') == result mock.assert_called_once()
def test_current_object_does_not_differ_check(self, mocker): client = mocker.Mock() changed, object = user.sync( {'my': 'data'}, 'present', client, '/path', {'my': 'data'}, True, ) assert changed is False assert {'my': 'data'} == object client.put.assert_not_called()
def test_state_update_check_mode(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') p_mock = mocker.patch.object(user, 'update_password') g_mock = mocker.patch.object(user, 'update_groups') s_mock = mocker.patch.object(user, 'update_state') s_mock.return_value = True changed, result = user.sync(dict(disabled=True), client, '/path', dict(disabled=False), True) assert changed is True assert dict(disabled=False) == result p_mock.assert_not_called() g_mock.assert_not_called() s_mock.assert_called_once()
def test_groups_update(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') p_mock = mocker.patch.object(user, 'update_password') g_mock = mocker.patch.object(user, 'update_groups') g_mock.return_value = False s_mock = mocker.patch.object(user, 'update_state') changed, result = user.sync(dict(groups=['a']), client, '/path', dict(groups=['b']), False) assert changed is False assert dict(new='data') == result p_mock.assert_not_called() g_mock.assert_called_once() s_mock.assert_not_called()
def test_password_update_check_mode(self, mocker): client = mocker.Mock() client.get.return_value = http.Response(200, '{"new": "data"}') p_mock = mocker.patch.object(user, 'update_password') p_mock.return_value = False g_mock = mocker.patch.object(user, 'update_groups') s_mock = mocker.patch.object(user, 'update_state') changed, result = user.sync(dict(old='data'), client, '/path', dict(username='******', password='******'), True) assert changed is False assert dict(old='data', username='******') == result p_mock.assert_called_once() g_mock.assert_not_called() s_mock.assert_not_called()