Source code for evennia.contrib.base_systems.godotwebsocket.test_text2bbcode

"""Tests for text2bbcode """

import mock
from django.test import TestCase

from evennia.contrib.base_systems.godotwebsocket import text2bbcode
from evennia.utils import ansi


[docs]class TestText2Bbcode(TestCase):
[docs] def test_format_styles(self): parser = text2bbcode.BBCODE_PARSER self.assertEqual("foo", parser.format_styles("foo")) self.assertEqual( "[color=#800000]red[/color]foo", parser.format_styles( ansi.ANSI_UNHILITE + ansi.ANSI_RED + "red" + ansi.ANSI_NORMAL + "foo" ), ) self.assertEqual( "[bgcolor=#800000]red[/bgcolor]foo", parser.format_styles(ansi.ANSI_BACK_RED + "red" + ansi.ANSI_NORMAL + "foo"), ) self.assertEqual( "[bgcolor=#800000][color=#008000]red[/color][/bgcolor]foo", parser.format_styles( ansi.ANSI_BACK_RED + ansi.ANSI_UNHILITE + ansi.ANSI_GREEN + "red" + ansi.ANSI_NORMAL + "foo" ), ) self.assertEqual( "a [u]red[/u]foo", parser.format_styles("a " + ansi.ANSI_UNDERLINE + "red" + ansi.ANSI_NORMAL + "foo"), ) self.assertEqual( "a [blink]red[/blink]foo", parser.format_styles("a " + ansi.ANSI_BLINK + "red" + ansi.ANSI_NORMAL + "foo"), ) self.assertEqual( "a [bgcolor=#c0c0c0][color=#000000]red[/color][/bgcolor]foo", parser.format_styles("a " + ansi.ANSI_INVERSE + "red" + ansi.ANSI_NORMAL + "foo"), )
[docs] def test_convert_urls(self): parser = text2bbcode.BBCODE_PARSER self.assertEqual("foo", parser.convert_urls("foo")) self.assertEqual( "a [url=http://redfoo]http://redfoo[/url] runs", parser.convert_urls("a http://redfoo runs"), )
[docs] def test_sub_text(self): parser = text2bbcode.BBCODE_PARSER mocked_match = mock.Mock() mocked_match.groupdict.return_value = {"lineend": "foo"} self.assertEqual("\n", parser.sub_text(mocked_match))
[docs] def test_parse_bbcode(self): self.assertEqual("foo", text2bbcode.parse_to_bbcode("foo")) self.maxDiff = None self.assertEqual( text2bbcode.parse_to_bbcode("|^|[CHello|n|u|rW|go|yr|bl|md|c!|[G!"), "[blink][bgcolor=#008080]Hello[/bgcolor][/blink]" "[u][color=#ff0000]W[/color][/u]" "[u][color=#00ff00]o[/color][/u]" "[u][color=#ffff00]r[/color][/u]" "[u][color=#0000ff]l[/color][/u]" "[u][color=#ff00ff]d[/color][/u]" "[u][color=#00ffff]![/color][/u]" "[u][bgcolor=#008000][color=#00ffff]![/color][/bgcolor][/u]", )