From 2b1ecd2733c342c4b6c295a1f0270e8af4b4bc65 Mon Sep 17 00:00:00 2001 From: Yuming Zhu Date: Sep 23 2016 15:43:18 +0000 Subject: ut: cli - test_add_group --- diff --git a/tests/test_cli/test_add_group.py b/tests/test_cli/test_add_group.py new file mode 100644 index 0000000..b124ee4 --- /dev/null +++ b/tests/test_cli/test_add_group.py @@ -0,0 +1,74 @@ +import unittest + +import StringIO as stringio + +import mock + +import loadcli + +cli = loadcli.cli + + + +class TestAddGroup(unittest.TestCase): + + # Show long diffs in error output... + maxDiff = None + + @mock.patch('sys.stdout', new_callable=stringio.StringIO) + @mock.patch('koji_cli.activate_session') + def test_handle_add_group(self, activate_session_mock, stdout): + tag = 'tag' + group = 'group' + arguments = [tag, group] + options = mock.MagicMock() + + # Mock out the xmlrpc server + session = mock.MagicMock() + session.hasPerm.return_value = True + session.getTag.return_value = 'dsttag' + session.getTagGroups.return_value = [{'name': 'otherGroup', 'group_id': 'otherGroupId'}] + + # Run it and check immediate output + cli.handle_add_group(options, session, arguments) + actual = stdout.getvalue() + expected = '' + self.assertMultiLineEqual(actual, expected) + + # Finally, assert that things were called as we expected. + activate_session_mock.assert_called_once_with(session) + session.hasPerm.assert_called_once_with('admin') + session.getTag.assert_called_once_with(tag) + session.getTagGroups.assert_called_once_with(tag, inherit=False) + session.groupListAdd.assert_called_once_with(tag, group) + + @mock.patch('sys.stdout', new_callable=stringio.StringIO) + @mock.patch('koji_cli.activate_session') + def test_handle_add_group_dupl(self, activate_session_mock, stdout): + tag = 'tag' + group = 'group' + arguments = [tag, group] + options = mock.MagicMock() + + # Mock out the xmlrpc server + session = mock.MagicMock() + session.hasPerm.return_value = True + session.getTag.return_value = 'dsttag' + session.getTagGroups.return_value = [{'name': 'group', 'group_id': 'groupId'}] + + # Run it and check immediate output + cli.handle_add_group(options, session, arguments) + actual = stdout.getvalue() + expected = 'Group group already exists for tag tag\n' + self.assertMultiLineEqual(actual, expected) + + # Finally, assert that things were called as we expected. + activate_session_mock.assert_called_once_with(session) + session.hasPerm.assert_called_once_with('admin') + session.getTag.assert_called_once_with(tag) + session.getTagGroups.assert_called_once_with(tag, inherit=False) + session.assert_not_called() + + +if __name__ == '__main__': + unittest.main()