def test_alias_value_as_function(self): def func(alias, context): return 'dyn value for ' + alias Aliases.add_alias('val', func) lazy = LazyAliasFormat('{alias.val}') self.assertEqual(lazy, 'dyn value for val')
def __init__(self, text, *partial_args, **partial_context): alias = partial_context.pop('alias', None) super(LazyAliasFormat, self).__init__(text, *partial_args, **partial_context) self._alias = alias self._aliases = Aliases() if self._alias: self._aliases.add_alias(alias, self)
class LazyAliasFormat(LazyFormat): CONTEXT_ALIAS_NAMESPACE = 'alias' def __init__(self, text, *partial_args, **partial_context): alias = partial_context.pop('alias', None) super(LazyAliasFormat, self).__init__(text, *partial_args, **partial_context) self._alias = alias self._aliases = Aliases() if self._alias: self._aliases.add_alias(alias, self) def context(self, args, kwargs): context = super(LazyAliasFormat, self).context(args=args, kwargs=kwargs) context.update_context_with({ self.CONTEXT_ALIAS_NAMESPACE: self._aliases.context(context) }) return context
class LazyAliasFormat(LazyFormat): CONTEXT_ALIAS_NAMESPACE = 'alias' def __init__(self, text, *partial_args, **partial_context): alias = partial_context.pop('alias', None) super(LazyAliasFormat, self).__init__(text, *partial_args, **partial_context) self._alias = alias self._aliases = Aliases() if self._alias: self._aliases.add_alias(alias, self) def context(self, args, kwargs): context = super(LazyAliasFormat, self).context(args=args, kwargs=kwargs) context.update_context_with( {self.CONTEXT_ALIAS_NAMESPACE: self._aliases.context(context)}) return context
def test_simple_alias_with_intersection(self): Aliases.add_alias('project_name', 'LazyFormat') lazy = LazyAliasFormat('{project_name} {alias.project_name}', project_name='prj') self.assertEqual(lazy, 'prj LazyFormat')
def test_simple_alias(self): Aliases.add_alias('project_name', 'LazyFormat') lazy = LazyAliasFormat('{alias.project_name}') self.assertEqual(lazy, 'LazyFormat')
def tearDown(self): Aliases.clear_aliases()