mirror of
https://github.com/evennia/evennia.git
synced 2026-03-28 18:47:16 +01:00
Fix correct unittests for new color-markup contrib
This commit is contained in:
parent
9f03e4a3f4
commit
70aea3db56
2 changed files with 56 additions and 76 deletions
|
|
@ -988,81 +988,61 @@ class TestUnixCommand(CommandTest):
|
|||
self.assertTrue(any(l.startswith("dummy: error:") for l in lines))
|
||||
|
||||
|
||||
import re
|
||||
from evennia.contrib import color_markups
|
||||
from evennia.utils import ansi
|
||||
|
||||
|
||||
class TestColorMarkup(EvenniaTest):
|
||||
|
||||
def test_default_markup(self):
|
||||
reload(ansi)
|
||||
self.assertEqual(ansi.parse_ansi("A |rred test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A {rred test"), 'A {rred test')
|
||||
self.assertEqual(ansi.parse_ansi("A %crred test"), "A %crred test")
|
||||
|
||||
@override_settings(
|
||||
COLOR_ANSI_EXTRA_MAP=[],
|
||||
COLOR_XTERM256_EXTRA_FG=[],
|
||||
COLOR_XTERM256_EXTRA_BG=[],
|
||||
COLOR_XTERM256_EXTRA_GFG=[],
|
||||
COLOR_XTERM256_EXTRA_GBG=[],
|
||||
COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP=[],
|
||||
COLOR_NO_DEFAULT=False)
|
||||
def tearDown(self):
|
||||
reload(ansi)
|
||||
|
||||
@override_settings(
|
||||
COLOR_ANSI_EXTRA_MAP=color_markups.CURLY_COLOR_ANSI_EXTRA_MAP,
|
||||
COLOR_XTERM256_EXTRA_FG=color_markups.CURLY_COLOR_XTERM256_EXTRA_FG,
|
||||
COLOR_XTERM256_EXTRA_BG=color_markups.CURLY_COLOR_XTERM256_EXTRA_BG,
|
||||
COLOR_XTERM256_EXTRA_GFG=color_markups.CURLY_COLOR_XTERM256_EXTRA_GFG,
|
||||
COLOR_XTERM256_EXTRA_GBG=color_markups.CURLY_COLOR_XTERM256_EXTRA_GBG,
|
||||
COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP=color_markups.CURLY_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP)
|
||||
"""
|
||||
Note: Normally this would be tested by importing the ansi parser and run
|
||||
the mappings through it. This is not possible since the ansi module creates
|
||||
its mapping at the module/class level; since the ansi module is used by so
|
||||
many other modules it appears that trying to overload
|
||||
settings to test it causes issues with unrelated tests.
|
||||
"""
|
||||
def test_curly_markup(self):
|
||||
reload(ansi) # this is important since the module is initialized
|
||||
self.assertEqual(ansi.parse_ansi("A |rred test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A {rred test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A {[Rred test"), 'A \x1b[41mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A |500red test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A {500red test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A {[500red test"), 'A \x1b[41mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A {=hgray test"), 'A \x1b[1m\x1b[30mgray test')
|
||||
self.assertEqual(ansi.parse_ansi("A {[=hgray test"), 'A \x1b[40mgray test')
|
||||
self.assertEqual(ansi.parse_ansi("A %crred test"), "A %crred test")
|
||||
# fake ansi bright background
|
||||
self.assertEqual(ansi.parse_ansi("A {[rred test"), 'A \x1b[41mred test')
|
||||
ansi_map = color_markups.CURLY_COLOR_ANSI_EXTRA_MAP
|
||||
self.assertIsNotNone(re.match(re.escape(ansi_map[7][0]), '{r'))
|
||||
self.assertIsNotNone(re.match(re.escape(ansi_map[-1][0]), '{[X'))
|
||||
xterm_fg = color_markups.CURLY_COLOR_XTERM256_EXTRA_FG
|
||||
self.assertIsNotNone(re.match(xterm_fg[0], '{001'))
|
||||
self.assertIsNotNone(re.match(xterm_fg[0], '{123'))
|
||||
self.assertIsNotNone(re.match(xterm_fg[0], '{455'))
|
||||
xterm_bg = color_markups.CURLY_COLOR_XTERM256_EXTRA_BG
|
||||
self.assertIsNotNone(re.match(xterm_bg[0], '{[001'))
|
||||
self.assertIsNotNone(re.match(xterm_bg[0], '{[123'))
|
||||
self.assertIsNotNone(re.match(xterm_bg[0], '{[455'))
|
||||
xterm_gfg = color_markups.CURLY_COLOR_XTERM256_EXTRA_GFG
|
||||
self.assertIsNotNone(re.match(xterm_gfg[0], '{=h'))
|
||||
self.assertIsNotNone(re.match(xterm_gfg[0], '{=e'))
|
||||
self.assertIsNotNone(re.match(xterm_gfg[0], '{=w'))
|
||||
xterm_gbg = color_markups.CURLY_COLOR_XTERM256_EXTRA_GBG
|
||||
self.assertIsNotNone(re.match(xterm_gbg[0], '{[=a'))
|
||||
self.assertIsNotNone(re.match(xterm_gbg[0], '{[=k'))
|
||||
self.assertIsNotNone(re.match(xterm_gbg[0], '{[=z'))
|
||||
bright_map = color_markups.CURLY_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP
|
||||
self.assertEqual(bright_map[0][1], '{[500')
|
||||
self.assertEqual(bright_map[-1][1], '{[222')
|
||||
|
||||
@override_settings(
|
||||
COLOR_ANSI_EXTRA_MAP=color_markups.MUX_COLOR_ANSI_EXTRA_MAP,
|
||||
COLOR_XTERM256_EXTRA_FG=color_markups.MUX_COLOR_XTERM256_EXTRA_FG,
|
||||
COLOR_XTERM256_EXTRA_BG=color_markups.MUX_COLOR_XTERM256_EXTRA_BG,
|
||||
COLOR_XTERM256_EXTRA_GFG=color_markups.MUX_COLOR_XTERM256_EXTRA_GFG,
|
||||
COLOR_XTERM256_EXTRA_GBG=color_markups.MUX_COLOR_XTERM256_EXTRA_GBG,
|
||||
COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP=color_markups.MUX_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP)
|
||||
def test_mux_markup(self):
|
||||
reload(ansi)
|
||||
self.assertEqual(ansi.parse_ansi("A |rred test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A %ch%crred test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A %ch%crred test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A |500red test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A %c500red test"), 'A \x1b[1m\x1b[31mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A %c[500red test"), 'A \x1b[41mred test')
|
||||
self.assertEqual(ansi.parse_ansi("A %c=hgray test"), 'A \x1b[1m\x1b[30mgray test')
|
||||
self.assertEqual(ansi.parse_ansi("A %c[=hgray test"), 'A \x1b[40mgray test')
|
||||
self.assertEqual(ansi.parse_ansi("A {rred test"), "A {rred test")
|
||||
# fake ansi bright background
|
||||
self.assertEqual(ansi.parse_ansi("A %ch%cRred test"), 'A \x1b[41mred test')
|
||||
|
||||
@override_settings(
|
||||
COLOR_ANSI_EXTRA_MAP=color_markups.MUX_COLOR_ANSI_EXTRA_MAP,
|
||||
COLOR_XTERM256_EXTRA_FG=color_markups.MUX_COLOR_XTERM256_EXTRA_FG,
|
||||
COLOR_XTERM256_EXTRA_BG=color_markups.MUX_COLOR_XTERM256_EXTRA_BG,
|
||||
COLOR_XTERM256_EXTRA_GFG=color_markups.MUX_COLOR_XTERM256_EXTRA_GFG,
|
||||
COLOR_XTERM256_EXTRA_GBG=color_markups.MUX_COLOR_XTERM256_EXTRA_GBG,
|
||||
COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP=color_markups.MUX_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP,
|
||||
COLOR_NO_DEFAULT=True)
|
||||
def test_override(self):
|
||||
reload(ansi)
|
||||
self.assertEqual(ansi.parse_ansi("A |rred test"), "A |rred test")
|
||||
self.assertEqual(ansi.parse_ansi("A {rred test"), "A {rred test")
|
||||
self.assertEqual(ansi.parse_ansi("A %ch%crred test"), 'A \x1b[1m\x1b[31mred test')
|
||||
ansi_map = color_markups.MUX_COLOR_ANSI_EXTRA_MAP
|
||||
self.assertIsNotNone(re.match(re.escape(ansi_map[10][0]), '%cr'))
|
||||
self.assertIsNotNone(re.match(re.escape(ansi_map[-1][0]), '%cX'))
|
||||
xterm_fg = color_markups.MUX_COLOR_XTERM256_EXTRA_FG
|
||||
self.assertIsNotNone(re.match(xterm_fg[0], '%c001'))
|
||||
self.assertIsNotNone(re.match(xterm_fg[0], '%c123'))
|
||||
self.assertIsNotNone(re.match(xterm_fg[0], '%c455'))
|
||||
xterm_bg = color_markups.MUX_COLOR_XTERM256_EXTRA_BG
|
||||
self.assertIsNotNone(re.match(xterm_bg[0], '%c[001'))
|
||||
self.assertIsNotNone(re.match(xterm_bg[0], '%c[123'))
|
||||
self.assertIsNotNone(re.match(xterm_bg[0], '%c[455'))
|
||||
xterm_gfg = color_markups.MUX_COLOR_XTERM256_EXTRA_GFG
|
||||
self.assertIsNotNone(re.match(xterm_gfg[0], '%c=h'))
|
||||
self.assertIsNotNone(re.match(xterm_gfg[0], '%c=e'))
|
||||
self.assertIsNotNone(re.match(xterm_gfg[0], '%c=w'))
|
||||
xterm_gbg = color_markups.MUX_COLOR_XTERM256_EXTRA_GBG
|
||||
self.assertIsNotNone(re.match(xterm_gbg[0], '%c[=a'))
|
||||
self.assertIsNotNone(re.match(xterm_gbg[0], '%c[=k'))
|
||||
self.assertIsNotNone(re.match(xterm_gbg[0], '%c[=z'))
|
||||
bright_map = color_markups.MUX_COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP
|
||||
self.assertEqual(bright_map[0][1], '%c[500')
|
||||
self.assertEqual(bright_map[-1][1], '%c[222')
|
||||
|
|
|
|||
|
|
@ -331,9 +331,9 @@ PROTOTYPE_MODULES = ["world.prototypes"]
|
|||
# dummyrunner for more information)
|
||||
DUMMYRUNNER_SETTINGS_MODULE = "evennia.server.profiling.dummyrunner_settings"
|
||||
# Mapping to extend Evennia's normal ANSI color tags. The mapping is a list of
|
||||
# tuples mapping the tag to the ANSI convertion, like `(r"%c%r", ansi.ANSI_RED)`
|
||||
# (the evennia.utils.ansi module contains all ANSI escape sequences). Default
|
||||
# is to use `|` and `|[` prefixes.
|
||||
# tuples mapping the exact tag (not a regex!) to the ANSI convertion, like
|
||||
# `(r"%c%r", ansi.ANSI_RED)` (the evennia.utils.ansi module contains all
|
||||
# ANSI escape sequences). Default is to use `|` and `|[` -prefixes.
|
||||
COLOR_ANSI_EXTRA_MAP = []
|
||||
# Extend the available regexes for adding XTERM256 colors in-game. This is given
|
||||
# as a list of regexes, where each regex must contain three anonymous groups for
|
||||
|
|
@ -353,7 +353,7 @@ COLOR_XTERM256_EXTRA_GFG = []
|
|||
COLOR_XTERM256_EXTRA_GBG = []
|
||||
# ANSI does not support bright backgrounds, so Evennia fakes this by mapping it to
|
||||
# XTERM256 backgrounds where supported. This is a list of tuples that maps the wanted
|
||||
# regex to a valid XTERM256 background tag, such as `(r'{[r', r'{[500')`.
|
||||
# ansi tag (not a regex!) to a valid XTERM256 background tag, such as `(r'{[r', r'{[500')`.
|
||||
COLOR_ANSI_XTERM256_BRIGHT_BG_EXTRA_MAP = []
|
||||
# If set True, the above color settings *replace* the default |-style color markdown
|
||||
# rather than extend it.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue