def test_register_without_priority(self): """ Registering a tag without specifying a priority: default to 0 """ tag_objs = [Tag("dummy"), Tag("dumdum"), Tag("mudmud")] tag.register(*tag_objs) tags = tag.get_manager()._tag_list self.assertTrue(0 in tags.keys()) self.assertEqual(len(tags[0]), 3) self.assertListEqual(tags[0], tag_objs)
def test_global_cache_clear(self): """ Clearing all registered tags' cache """ tag.register(tag.Tag("dummy", cached=True), tag.Tag("dumdum", cached=True), tag.Tag("mudmud", cached=True)) m = tag.get_manager() for t in m: t.process("dummydumdummudmud", **{"dummy": "dummy", "dumdum": "dumdum", "mudmud": "mudmud"}) m.clear_cache() for t in m: self.assertEqual({}, t.cache)
def test_register_Tag_sublass(self): """ Registering a Tag subclass """ class DummyTag(Tag): pass t = DummyTag("dummy") tag.register(t) self.assertTrue(isinstance(tag.get_manager()._tag_list[0], DummyTag))
def default_renderer(template, **context): """ Default template renderer. Process each registered Tag and returns the whole processed string. """ out = template.template vals = {} for t in tag.get_manager(): vals.update(t.process(out, **context)) if vals: rgx = re.compile('|'.join(vals.keys())) return rgx.sub(lambda m: vals[m.group(0)], out) else: return out
def tearDown(self): tag.get_manager().clear()
def test_get_manager(self): """ Getting the current TagManager """ tm = tag.get_manager() self.assertEqual(tm, tag._manager)
def test_check_tags_priority(self): """ Checking Tags priority """ tag.register(("dummy", 4), ("dumdum", 7), ("mudmud", 0)) tag_patterns = [t.regexp.pattern for t in tag.get_manager()] self.assertListEqual(tag_patterns, ["mudmud", "dummy", "dumdum"])