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>')
示例#5
0
 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)