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)
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)
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
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
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)