def test_present(self):
        ret = {'name': 'salt',
               'changes': {},
               'result': True,
               'comment': {}
               }

        ret.update({'comment': 'Error: Conflicting options "members" with'
                    ' "addusers" and/or "delusers" can not be used together. ',
                    'result': None})
        self.assertDictEqual(group.present("salt", delusers=True,
                                           members=True), ret)

        ret.update({'comment': 'Error. Same user(s) can not be'
                    ' added and deleted simultaneously'})
        self.assertDictEqual(group.present("salt", addusers=['a'],
                                           delusers=['a']), ret)

        ret.update({'comment': 'The following group attributes are set'
                    ' to be changed:\nkey1: value1\nkey0: value0\n'})
        mock = MagicMock(side_effect=[{'key0': 'value0',
                                       'key1': 'value1'}, False, False, False])
        with patch.object(group, '_changes', mock):
            with patch.dict(group.__opts__, {"test": True}):
                self.assertDictEqual(group.present("salt"), ret)

                ret.update({'comment': 'Group salt set to be added'})
                self.assertDictEqual(group.present("salt"), ret)

            with patch.dict(group.__opts__, {"test": False}):
                mock = MagicMock(return_value=[{'gid': 1, 'name': 'stack'}])
                with patch.dict(group.__salt__, {'group.getent': mock}):
                    ret.update({'result': False,
                                'comment': 'Group salt is not present but'
                                ' gid 1 is already taken by group stack'})
                    self.assertDictEqual(group.present("salt", 1), ret)

                    mock = MagicMock(return_value=False)
                    with patch.dict(group.__salt__, {'group.add': mock}):
                        ret.update({'comment':
                                    'Failed to create new group salt'})
                        self.assertDictEqual(group.present("salt"), ret)
Handles the user changing the contents of the edit control.
dataset/ETHPy150Open saltstack/salt/tests/unit/states/group_test.py/GroupTestCase.test_present--crossover with--dataset/ETHPy150Open enthought/traitsui/traitsui/qt4/font_editor.py/TextFontEditor.update_object