def test_handle_add_group_help(self, activate_session_mock, stderr, stdout): arguments = [] options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() # Run it and check immediate output with self.assertRaises(SystemExit) as cm: rv = handle_add_group(options, session, arguments) actual_stdout = stdout.getvalue() actual_stderr = stderr.getvalue() expected_stdout = '' progname = os.path.basename(sys.argv[0]) or 'koji' expected_stderr = """Usage: %s add-group <tag> <group> (Specify the --help global option for a list of other help options) %s: error: Please specify a tag name and a group name """ % (progname, progname) self.assertMultiLineEqual(actual_stdout, expected_stdout) self.assertMultiLineEqual(actual_stderr, expected_stderr) # Finally, assert that things were called as we expected. activate_session_mock.assert_not_called() session.hasPerm.assert_not_called() session.getTag.assert_not_called() session.getTagGroups.assert_not_called() session.groupListAdd.assert_not_called() if isinstance(cm.exception, int): self.assertEqual(cm.exception, 2) else: self.assertEqual(cm.exception.code, 2)
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 rv = 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, options) 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) self.assertNotEqual(rv, 1)
def test_handle_add_group_no_perm(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 = False # Run it and check immediate output rv = handle_add_group(options, session, arguments) actual = stdout.getvalue() expected = 'This action requires admin privileges\n' self.assertMultiLineEqual(actual, expected) # Finally, assert that things were called as we expected. activate_session_mock.assert_called_once_with(session, options) session.hasPerm.assert_called_once_with('admin') session.getTag.assert_not_called() session.getTagGroups.assert_not_called() session.groupListAdd.assert_not_called() self.assertEqual(rv, 1)