Пример #1
0
 def test_get_optional_group_ids(self):
     option_list = [{
         'default': True,
         'group': 'id1'
     }, {
         'default': False,
         'group': 'id2'
     }]
     model = models.PackageEnvironment('foo_id', 'foo_repo',
                                       {'options': option_list})
     self.assertEquals(['id1', 'id2'], model.optional_group_ids)
Пример #2
0
    def _generate_environment_unit(self, name):
        """
        Generate package environment unit.

        :param name: name of the unit
        :type  name: str
        """
        unit_data = {
            'package_environment_id': name,
            'display_order': 0,
            'name': name,
            'description': name + u' – description',
            'group_ids': [],
            'options': []
        }
        return models.PackageEnvironment(**unit_data)
Пример #3
0
def environment_models(num, same_repo=True):
    ret = []
    count = _environment_counter.next()
    repo_id = 'repo-%d' % count
    for i in range(num):
        if not same_repo:
            repo_id = 'repo-%d' % count
        ret.append(
            models.PackageEnvironment(
                'name-%d' % count, repo_id, {
                    'group_ids': ['abc%d' % count,
                                  'xyz%d' % count],
                    'options': [{
                        'default': False,
                        'group': 'op%d' % count
                    }, {
                        'default': True,
                        'group': 'bz%d' % count
                    }]
                }))
        count = _environment_counter.next()
    return ret
Пример #4
0
def process_environment_element(repo_id, element):
    """
    Process one XML block from comps.xml and return a models.PackageEnvironment instance

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

    :return:    models.PackageEnvironment instance for the XML block
    :rtype:     pulp_rpm.plugins.db.models.PackageEnvironment
    """
    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')

    options = []
    # The optionlist tag is not always present
    option_list = element.find('optionlist')
    if option_list is not None:
        for group in option_list.findall('groupid'):
            default = group.attrib.get('default', False)
            options.append({'group': group.text, 'default': default})

    unit = models.PackageEnvironment()
    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.group_ids = [group.text for group in groups]
    unit.package_environment_id = element.find('id').text
    unit.name = name
    unit.repo_id = repo_id
    unit.translated_description = translated_description
    unit.translated_name = translated_name
    unit.options = options
    return unit
Пример #5
0
 def test_get_group_ids(self):
     group_id_list = ['id1', 'id2']
     model = models.PackageEnvironment('foo_id', 'foo_repo',
                                       {'group_ids': group_id_list})
     self.assertEquals(group_id_list, model.group_ids)