def test_skip_list(self, mock_metadata):
        """
        Test that unit types in the skip list are actually skipped
        """
        # Setup
        skip_list = [ids.TYPE_ID_RPM, ids.TYPE_ID_PKG_GROUP, ids.TYPE_ID_DISTRO, ids.TYPE_ID_ERRATA]
        config = PluginCallConfiguration({}, {constants.SKIP_KEYWORD: skip_list})
        mock_conduit = mock.Mock(spec=RepoPublishConduit)
        mock_metadata.return_value = (None, None)

        # Test
        export_utils.export_complete_repo('repo_id', '/working/dir', mock_conduit, config, None)
        self.assertEqual(0, export_utils.export_rpm.call_count)
        self.assertEqual(0, export_utils.export_package_groups_and_cats.call_count)
        self.assertEqual(0, export_utils.export_distribution.call_count)
        self.assertEqual(0, export_utils.export_errata.call_count)
    def test_metadata_errors(self, mock_metadata):
        """
        Test that metadata errors from the call to metadata.generate_yum_metadata are placed in the
        details dictionary
        """
        # Setup
        skip_list = [ids.TYPE_ID_RPM, ids.TYPE_ID_PKG_GROUP, ids.TYPE_ID_DISTRO, ids.TYPE_ID_ERRATA]
        config = PluginCallConfiguration({}, {constants.SKIP_KEYWORD: skip_list})
        mock_conduit = mock.Mock(spec=RepoPublishConduit)
        mock_metadata.return_value = (None, ['error'])

        # Test
        summary, details = export_utils.export_complete_repo('repo_id', '/working/dir', mock_conduit,
                                                             config, None)
        self.assertEqual({}, summary)
        self.assertEqual({'errors': {'metadata_errors': ['error']}}, details)
    def test_export_complete_repo(self, mock_metadata):
        """
        Test that export_complete_repo calls all the correct helper methods
        """
        # Setup
        config = PluginCallConfiguration({}, {})
        mock_conduit = mock.Mock(spec=RepoPublishConduit)
        mock_metadata.return_value = (None, None)
        export_utils.export_rpm.return_value = ({}, {})
        export_utils.export_package_groups_and_cats.return_value = (None, {})

        # Test
        summary, details = export_utils.export_complete_repo('repo_id', '/working/dir', mock_conduit,
                                                             config, None)
        self.assertEqual(1, export_utils.export_rpm.call_count)
        self.assertEqual(1, export_utils.export_package_groups_and_cats.call_count)
        self.assertEqual(1, export_utils.export_distribution.call_count)
        self.assertEqual(1, export_utils.export_errata.call_count)
        self.assertEqual({}, summary)
        self.assertEqual({'errors': {}}, details)