def test_tags_can_be_rendered(self): # Setup parser_loader = BBCodeParserLoader(parser=self.parser) tag_pool.register_tag(FooTagAlt) tag_pool.register_tag(BarTag) parser_loader.init_bbcode_tags() # Run & check for bbcodes_text, expected_html_text in self.TAGS_TESTS: result = self.parser.render(bbcodes_text) assert result == expected_html_text
def test_can_disable_builtin_tags(self): # Setup bbcode_settings.BBCODE_DISABLE_BUILTIN_TAGS = True parser_loader = BBCodeParserLoader(parser=BBCodeParser()) # Run & check parser_loader.load_parser() import precise_bbcode.bbcode.defaults.tag for tag_klass in get_subclasses(precise_bbcode.bbcode.defaults.tag, ParserBBCodeTag): assert tag_klass.name not in parser_loader.parser.bbcodes bbcode_settings.BBCODE_DISABLE_BUILTIN_TAGS = False
def create_smilies(self): self.parser = get_parser() self.parser_loader = BBCodeParserLoader(parser=self.parser) # Set up an image used for doing smilies tests f = open(settings.MEDIA_ROOT + '/icon_e_wink.gif', 'rb') image_file = File(f) self.image = image_file # Set up a smiley tag smiley = SmileyTag() smiley.code = ':test:' smiley.image.save('icon_e_wink.gif', self.image) smiley.save() self.parser_loader.init_bbcode_smilies()
def test_can_be_rendered_by_the_bbcode_parser(self): # Setup parser_loader = BBCodeParserLoader(parser=self.parser) tag = BBCodeTag( **{ 'tag_definition': '[mail]{EMAIL}[/mail]', 'html_replacement': '<a href="mailto:{EMAIL}">{EMAIL}</a>', 'swallow_trailing_newline': True }) tag.save() parser_loader.init_custom_bbcode_tags() # Run & check assert (self.parser.render('[mail][email protected][/mail]') == '<a href="mailto:[email protected]">[email protected]</a>')
def test_placeholders_can_be_used_with_tags(self): # Setup parser_loader = BBCodeParserLoader(parser=self.parser) placeholder_pool.register_placeholder(FooPlaceholder) placeholder_pool.register_placeholder(DummyPlaceholder) tag_pool.register_tag(FooBBCodeTag) tag_pool.register_tag(DummyBBCodeTag) parser_loader.init_bbcode_placeholders() parser_loader.init_bbcode_tags() # Run & check for bbcodes_text, expected_html_text in self.TAGS_TESTS: result = self.parser.render(bbcodes_text) assert result == expected_html_text placeholder_pool.unregister_placeholder(FooPlaceholder) placeholder_pool.unregister_placeholder(DummyPlaceholder)