def test_handle_import_comps_help( self, mock_import_comps_alt, mock_import_comps, mock_activate_session, stderr, stdout): args = [] progname = os.path.basename(sys.argv[0]) or 'koji' options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() # Run it and check immediate output with self.assertRaises(SystemExit) as ex: handle_import_comps(options, session, args) self.assertExitCode(ex, 2) actual_stdout = stdout.getvalue() actual_stderr = stderr.getvalue() expected_stdout = '' expected_stderr = """Usage: %s import-comps [options] <file> <tag> (Specify the --help global option for a list of other help options) %s: error: Incorrect number of arguments """ % (progname, progname) self.assertMultiLineEqual(actual_stdout, expected_stdout) self.assertMultiLineEqual(actual_stderr, expected_stderr) # Finally, assert that things were called as we expected. mock_activate_session.assert_not_called() session.getTag.assert_not_called() session.getTagGroups.assert_not_called() session.groupListAdd.assert_not_called()
def test_handle_import_comps_tag_not_exists( self, mock_import_comps_alt, mock_import_comps, mock_activate_session, stderr): filename = './data/comps-example.xml' tag = 'tag' tag_info = None args = [filename, tag] options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() session.getTag.return_value = tag_info # Run it and check immediate output # args: ./data/comps-example.xml, tag # expected: failed: tag does not exist with self.assertRaises(SystemExit) as ex: handle_import_comps(options, session, args) self.assertExitCode(ex, 1) actual = stderr.getvalue() expected = 'No such tag: tag\n' self.assertMultiLineEqual(actual, expected) # Finally, assert that things were called as we expected. mock_activate_session.assert_called_once_with(session, options) session.getTag.assert_called_once_with(tag) mock_import_comps.assert_not_called() mock_import_comps_alt.assert_not_called()
def test_handle_import_comps_comps_na( self, mock_import_comps_alt, mock_import_comps, mock_activate_session, stderr): filename = './data/comps-example.xml' tag = 'tag' tag_info = {'name': tag, 'id': 1} args = ['--force', filename, tag] options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() session.getTag.return_value = tag_info # Run it and check immediate output # args: --force, ./data/comps-example.xml, tag # expected: failed, no comps available with self.assertRaises(SystemExit) as ex: handle_import_comps(options, session, args) self.assertExitCode(ex, 1) actual = stderr.getvalue() expected = 'comps module not available\n' self.assertMultiLineEqual(actual, expected) # Finally, assert that things were called as we expected. mock_activate_session.assert_called_once_with(session, options) session.getTag.assert_called_once_with(tag) mock_import_comps.assert_not_called() mock_import_comps_alt.assert_not_called()
def test_handle_import_comps_yumcomps( self, mock_import_comps_alt, mock_import_comps, mock_activate_session, yumcomps, stdout): filename = './data/comps-example.xml' tag = 'tag' tag_info = {'name': tag, 'id': 1} force = True args = ['--force', filename, tag] local_options = {'force': force} options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() session.getTag.return_value = tag_info # Run it and check immediate output # args: --force, ./data/comps-example.xml, tag # expected: success rv = handle_import_comps(options, session, args) actual = stdout.getvalue() expected = '' self.assertMultiLineEqual(actual, expected) # Finally, assert that things were called as we expected. mock_activate_session.assert_called_once_with(session, options) session.getTag.assert_called_once_with(tag) mock_import_comps.assert_not_called() mock_import_comps_alt.assert_called_once_with( session, filename, tag, local_options) self.assertNotEqual(rv, 1)
def test_handle_import_comps_tag_not_exists( self, mock_import_comps_alt, mock_import_comps, mock_activate_session, stdout): filename = './data/comps-example.xml' tag = 'tag' tag_info = None args = [filename, tag] options = mock.MagicMock() # Mock out the xmlrpc server session = mock.MagicMock() session.getTag.return_value = tag_info # Run it and check immediate output # args: ./data/comps-example.xml, tag # expected: failed: tag does not exist rv = handle_import_comps(options, session, args) actual = stdout.getvalue() expected = 'No such tag: tag\n' self.assertMultiLineEqual(actual, expected) # Finally, assert that things were called as we expected. mock_activate_session.assert_called_once_with(session, options) session.getTag.assert_called_once_with(tag) mock_import_comps.assert_not_called() mock_import_comps_alt.assert_not_called() self.assertEqual(rv, 1)
def test_handle_import_comps_help( self, mock_import_comps_alt, mock_import_comps, mock_activate_session, stderr, stdout): args = [] progname = os.path.basename(sys.argv[0]) or 'koji' 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_import_comps(options, session, args) actual_stdout = stdout.getvalue() actual_stderr = stderr.getvalue() expected_stdout = '' expected_stderr = """Usage: %s import-comps [options] <file> <tag> (Specify the --help global option for a list of other help options) %s: error: Incorrect number of arguments """ % (progname, progname) self.assertMultiLineEqual(actual_stdout, expected_stdout) self.assertMultiLineEqual(actual_stderr, expected_stderr) # Finally, assert that things were called as we expected. mock_activate_session.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)