def test_recursive_section_ref(self): manager = central.ConfigManager([{ 'spork': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'content': 'foon' }), 'foon': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'content': 'spork' }), 'self': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'content': 'self' }), }]) self.check_error( "Collapsing section named 'self':\n" "Failed collapsing section key 'content':\n" "Reference to 'self' is recursive", self.get_config_obj, manager, 'drawer', 'self') self.check_error( "Collapsing section named 'spork':\n" "Failed collapsing section key 'content':\n" "Collapsing section named 'foon':\n" "Failed collapsing section key 'content':\n" "Reference to 'spork' is recursive", self.get_config_obj, manager, 'drawer', 'spork')
def test_recursive_inherit(self): manager = central.ConfigManager( [{'spork': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'inherit': 'foon'}), 'foon': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'inherit': 'spork'}), }]) self.check_error( "Collapsing section named 'spork':\n" "Inherit 'spork' is recursive", self.get_config_obj, manager, 'drawer', 'spork')
def test_self_inherit(self): section = basics.HardCodedConfigSection({'inherit': ['self']}) manager = central.ConfigManager([{ 'self': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'inherit': 'self' }), }], [RemoteSource()]) self.check_error( "Collapsing section named 'self':\n" "Self-inherit 'self' cannot be found", self.get_config_obj, manager, 'drawer', 'self') self.check_error("Self-inherit 'self' cannot be found", manager.collapse_section, [section]) manager = central.ConfigManager([{ 'self': basics.HardCodedConfigSection({ 'inherit': ['self'], }) }, { 'self': basics.HardCodedConfigSection({ 'inherit': ['self'], }) }, { 'self': basics.HardCodedConfigSection({'class': drawer}) }]) self.assertTrue(manager.collapse_named_section('self')) self.assertTrue(manager.collapse_section([section]))
def test_collapse_named_errors(self): manager = central.ConfigManager( [{'spork': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'content': 'ref'})}], [RemoteSource()]) self.assertRaises(KeyError, self.get_config_obj, manager, 'repo', 'foon') self.check_error( "Collapsing section named 'spork':\n" "Failed collapsing section key 'content':\n" "no section called 'ref'", self.get_config_obj, manager, 'repo', 'spork')
def test_instantiation_caching(self): @configurable(typename='drawer') def myrepo(): return object() manager = central.ConfigManager( [{'spork': basics.HardCodedConfigSection({'class': myrepo}), 'drawer': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.test.config.test_central.drawer', 'content': 'spork', }), }]) config = manager.collapse_named_section('spork') self.assertIdentical(config.instantiate(), config.instantiate()) self.assertIdentical( config.instantiate(), manager.collapse_named_section('drawer').instantiate()[0])
def store_config(namespace, attr, global_config=()): configs = list( map(_convert_config_mods, [ namespace.pop('new_config', None), namespace.pop('add_config', None) ])) # add necessary inherits for add_config for key, vals in configs[1].items(): vals.setdefault('inherit', key) configs = [{ section: basics.ConfigSectionFromStringDict(vals) for section, vals in d.items() } for d in configs if d] config = load_config( skip_config_files=namespace.pop('empty_config', False), prepend_sources=tuple(global_config), append_sources=tuple(configs), location=namespace.pop('override_config', None), profile_override=namespace.pop('profile_override', None), **vars(namespace)) setattr(namespace, attr, config)
def add_trigger(name, kls_path, **extra_args): d = extra_args.copy() d['class'] = kls_path new_config[name] = basics.ConfigSectionFromStringDict(d) triggers.append(name)
"disabling buildpkg related features since PKGDIR either doesn't " "exist, or lacks 0755 minimal permissions") pkgdir = None else: if buildpkg or set(features).intersection( ('pristine-buildpkg', 'buildsyspkg', 'unmerge-backup')): logger.warning( "disabling buildpkg related features since PKGDIR is unset") # yes, round two; may be disabled from above and massive else block sucks if pkgdir is not None: if pkgdir and os.path.isdir(pkgdir): new_config['binpkg'] = basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.binpkg.repository.tree', 'location': pkgdir, 'ignore_paludis_versioning': str('ignore-paludis-versioning' in features), }) default_repos.append('binpkg') if buildpkg: add_trigger('buildpkg_trigger', 'pkgcore.merge.triggers.SavePkg', pristine='no', target_repo='binpkg') elif 'pristine-buildpkg' in features: add_trigger('buildpkg_trigger', 'pkgcore.merge.triggers.SavePkg', pristine='yes', target_repo='binpkg')
def get_section(section): return basics.ConfigSectionFromStringDict(dict(cparser.items(section)))
from pkgcore.config import basics pkgcore_plugins = { 'global_config': [{ 'basic': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.BasicFormatter', }), 'pkgcore': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.PkgcoreFormatter', }), 'portage': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.PortageFormatter', 'default': 'True', }), 'portage-verbose': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.PortageVerboseFormatter', }), 'paludis': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.PaludisFormatter', }), }], }
"""Extra default config sections from pkgcheck.""" from pkgcore.config import basics from .. import base pkgcore_plugins = { 'global_config': [{ 'repo': basics.ConfigSectionFromStringDict({ 'class': 'pkgcheck.base.Scope', 'scopes': str(base.repository_scope), }), 'no-arch': basics.ConfigSectionFromStringDict({ 'class': 'pkgcheck.base.Blacklist', 'patterns': 'unstable_only stale_unstable imlate', }), 'all': basics.ConfigSectionFromStringDict({ 'class': 'pkgcheck.base.Blacklist', 'patterns': '', }), }], }
# Copyright: 2006 Marien Zwart <*****@*****.**> # License: BSD/GPL2 from pkgcore.config import basics pkgcore_plugins = { 'global_config': [{ 'basic': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.basic_factory', }), 'pkgcore': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.pkgcore_factory', }), 'portage': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.portage_factory', 'default': 'True', }), 'portage-verbose': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.portage_verbose_factory', }), 'paludis': basics.ConfigSectionFromStringDict({ 'class': 'pkgcore.ebuild.formatter.paludis_factory',