Esempio n. 1
0
def process_category_element(repo_id, element):
    """
    Process one XML block from comps.xml and return a models.PackageCategory instance

    :param repo_id: unique ID for the destination repository
    :type  repo_id  basestring
    :param element: object representing one "category" block from the XML file
    :type  element: xml.etree.ElementTree.Element

    :return:    models.PackageCategory instance for the XML block
    :rtype:     pulp_rpm.plugins.db.models.PackageCategory
    """
    description, translated_description = _parse_translated(
        element.findall('description'))
    name, translated_name = _parse_translated(element.findall('name'))
    display_order = element.find('display_order')
    groups = element.find('grouplist').findall('groupid')

    unit = models.PackageCategory()
    unit.description = description
    # default of 1024 is from yum's own parsing of these objects
    unit.display_order = int(
        display_order.text) if display_order is not None else 1024
    unit.packagegroupids = [group.text for group in groups]
    unit.package_category_id = element.find('id').text
    unit.name = name
    unit.repo_id = repo_id
    unit.translated_description = translated_description
    unit.translated_name = translated_name
    return unit
Esempio n. 2
0
def category_models(num, same_repo=True):
    ret = []
    count = _category_counter.next()
    repo_id = 'repo-%d' % count
    for i in range(num):
        if not same_repo:
            repo_id = 'repo-%d' % count
        ret.append(
            models.PackageCategory(
                'name-%d' % count, repo_id,
                {'packagegroupids': ['abc%d' % count,
                                     'xyz%d' % count]}))
        count = _category_counter.next()
    return ret
Esempio n. 3
0
    def _generate_category_unit(self, name):
        """
        Generate package category unit.

        :param name: name of the unit
        :type  name: str
        """
        unit_data = {
            'package_category_id': name,
            'display_order': 0,
            'name': name,
            'description': name + u' – description',
            'packagegroupids': []
        }
        return models.PackageCategory(**unit_data)