From d01e9d9c32301b101c3a4ef22935892bf9883b78 Mon Sep 17 00:00:00 2001 From: vonzimr Date: Mon, 9 Oct 2017 12:31:13 -0700 Subject: [PATCH 1/4] fix spelling of variable to be more consistent with comments. --- evennia/server/portal/irc.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/evennia/server/portal/irc.py b/evennia/server/portal/irc.py index 75ef7fb289..2ac5994426 100644 --- a/evennia/server/portal/irc.py +++ b/evennia/server/portal/irc.py @@ -38,7 +38,7 @@ IRC_CYAN = "11" IRC_BLUE = "12" IRC_MAGENTA = "13" IRC_DGREY = "14" -IRC_GRAY = "15" +IRC_GREY = "15" # obsolete test: @@ -76,7 +76,7 @@ IRC_COLOR_MAP = dict(( (r'|B', IRC_COLOR + IRC_DBLUE), (r'|M', IRC_COLOR + IRC_DMAGENTA), (r'|C', IRC_COLOR + IRC_DCYAN), - (r'|W', IRC_COLOR + IRC_GRAY), # light grey + (r'|W', IRC_COLOR + IRC_GREY), # light grey (r'|X', IRC_COLOR + IRC_BLACK), # pure black (r'|[r', IRC_COLOR + IRC_NORMAL + "," + IRC_DRED), @@ -85,7 +85,7 @@ IRC_COLOR_MAP = dict(( (r'|[b', IRC_COLOR + IRC_NORMAL + "," + IRC_DBLUE), (r'|[m', IRC_COLOR + IRC_NORMAL + "," + IRC_DMAGENTA), (r'|[c', IRC_COLOR + IRC_NORMAL + "," + IRC_DCYAN), - (r'|[w', IRC_COLOR + IRC_NORMAL + "," + IRC_GRAY), # light grey background + (r'|[w', IRC_COLOR + IRC_NORMAL + "," + IRC_GREY), # light grey background (r'|[x', IRC_COLOR + IRC_NORMAL + "," + IRC_BLACK) # pure black background )) # ansi->irc From 9ddd79b202706a51388a2698d1c07639b3e489f8 Mon Sep 17 00:00:00 2001 From: vonzimr Date: Mon, 9 Oct 2017 14:13:48 -0700 Subject: [PATCH 2/4] extra tests for irc parsing functions --- evennia/server/portal/tests.py | 81 ++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 evennia/server/portal/tests.py diff --git a/evennia/server/portal/tests.py b/evennia/server/portal/tests.py new file mode 100644 index 0000000000..f9f787d050 --- /dev/null +++ b/evennia/server/portal/tests.py @@ -0,0 +1,81 @@ +try: + from django.utils.unittest import TestCase +except ImportError: + from django.test import TestCase + +try: + from django.utils import unittest +except ImportError: + import unittest + +import string +from evennia.server.portal import irc + + +class TestIRC(TestCase): + + def test_plain_ansi(self): + """ + Test that printable characters do not get mangled. + """ + irc_ansi = irc.parse_ansi_to_irc(string.printable) + ansi_irc = irc.parse_irc_to_ansi(string.printable) + self.assertEqual(irc_ansi, string.printable) + self.assertEqual(ansi_irc, string.printable) + + def test_evennia_strings(self): + pass + + def test_irc_string(self): + pass + + def test_bold(self): + s_irc = "\x02thisisatest" + s_eve = r'|hthisisatest' + self.assertEqual(irc.parse_ansi_to_irc(s_eve), s_irc) + self.assertEqual(s_eve, irc.prase_irc_to_ansi(s_irc)) + + def test_italic(self): + s_irc = "\x02thisisatest" + s_eve = r'|hthisisatest' + self.assertEqual(irc.parse_ansi_to_irc(s_eve), s_irc) + + def test_colors(self): + color_map = (("\0030", r'|w'), + ("\0031", r'|X'), + ("\0032", r'|B'), + ("\0033", r'|G'), + ("\0034", r'|r'), + ("\0035", r'|R'), + ("\0036", r'|M'), + ("\0037", r'|Y'), + ("\0038", r'|y'), + ("\0039", r'|g'), + ("\00310", r'|C'), + ("\00311", r'|c'), + ("\00312", r'|b'), + ("\00313", r'|m'), + ("\00314", r'|x'), + ("\00315", r'|W')) + + + for m in color_map: + self.assertEqual(irc.parse_irc_to_ansi(m[0]), m[1]) + self.assertEqual(m[0], irc.parse_ansi_to_irc(m[1])) + + + def test_bold(self): + s_irc = "\002thisisatest" + s_eve = r'|hthisisatest' + self.assertEqual(irc.parse_ansi_to_irc(s_eve), s_irc) + self.assertEqual(s_eve, irc.parse_irc_to_ansi(s_irc)) + + def test_underlined(self): + pass + + def test_identity(self): + """ + Test that the composition of the function and + its inverse gives the correct string + """ + pass From 5d2ee7e5f493d0bdad541d5287795fa99eebe1c4 Mon Sep 17 00:00:00 2001 From: vonzimr Date: Mon, 9 Oct 2017 14:14:14 -0700 Subject: [PATCH 3/4] added IRC_INVERT code according to: https://github.com/myano/jenni/wiki/IRC-String-Formatting --- evennia/server/portal/irc.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/evennia/server/portal/irc.py b/evennia/server/portal/irc.py index 2ac5994426..7a67a5ba80 100644 --- a/evennia/server/portal/irc.py +++ b/evennia/server/portal/irc.py @@ -20,6 +20,7 @@ IRC_BOLD = "\002" IRC_COLOR = "\003" IRC_RESET = "\017" IRC_ITALIC = "\026" +IRC_INVERT = "\x16" IRC_NORMAL = "99" IRC_UNDERLINE = "37" @@ -57,7 +58,7 @@ IRC_COLOR_MAP = dict(( (r'|t', " "), # tab (r'|-', " "), # fixed tab (r'|_', " "), # space - (r'|*', ""), # invert + (r'|*', IRC_INVERT), # invert (r'|^', ""), # blinking text (r'|h', IRC_BOLD), # highlight, use bold instead From 3d2e7a7efd38311c79add2ec9977e782670ccaf8 Mon Sep 17 00:00:00 2001 From: vonzimr Date: Wed, 11 Oct 2017 19:53:48 -0700 Subject: [PATCH 4/4] remove blank tests --- evennia/server/portal/tests.py | 62 +++++++++++++++++----------------- 1 file changed, 31 insertions(+), 31 deletions(-) diff --git a/evennia/server/portal/tests.py b/evennia/server/portal/tests.py index f9f787d050..cd869996e2 100644 --- a/evennia/server/portal/tests.py +++ b/evennia/server/portal/tests.py @@ -33,49 +33,49 @@ class TestIRC(TestCase): s_irc = "\x02thisisatest" s_eve = r'|hthisisatest' self.assertEqual(irc.parse_ansi_to_irc(s_eve), s_irc) - self.assertEqual(s_eve, irc.prase_irc_to_ansi(s_irc)) - + self.assertEqual(s_eve, irc.parse_irc_to_ansi(s_irc)) + def test_italic(self): s_irc = "\x02thisisatest" s_eve = r'|hthisisatest' self.assertEqual(irc.parse_ansi_to_irc(s_eve), s_irc) def test_colors(self): - color_map = (("\0030", r'|w'), - ("\0031", r'|X'), - ("\0032", r'|B'), - ("\0033", r'|G'), - ("\0034", r'|r'), - ("\0035", r'|R'), - ("\0036", r'|M'), - ("\0037", r'|Y'), - ("\0038", r'|y'), - ("\0039", r'|g'), - ("\00310", r'|C'), - ("\00311", r'|c'), - ("\00312", r'|b'), - ("\00313", r'|m'), - ("\00314", r'|x'), - ("\00315", r'|W')) - + color_map = (("\0030", r'|w'), + ("\0031", r'|X'), + ("\0032", r'|B'), + ("\0033", r'|G'), + ("\0034", r'|r'), + ("\0035", r'|R'), + ("\0036", r'|M'), + ("\0037", r'|Y'), + ("\0038", r'|y'), + ("\0039", r'|g'), + ("\00310", r'|C'), + ("\00311", r'|c'), + ("\00312", r'|b'), + ("\00313", r'|m'), + ("\00314", r'|x'), + ("\00315", r'|W'), + ("\00399,5", r'|[r'), + ("\00399,3", r'|[g'), + ("\00399,7", r'|[y'), + ("\00399,2", r'|[b'), + ("\00399,6", r'|[m'), + ("\00399,10", r'|[c'), + ("\00399,15", r'|[w'), + ("\00399,1", r'|[x')) for m in color_map: self.assertEqual(irc.parse_irc_to_ansi(m[0]), m[1]) self.assertEqual(m[0], irc.parse_ansi_to_irc(m[1])) - - def test_bold(self): - s_irc = "\002thisisatest" - s_eve = r'|hthisisatest' - self.assertEqual(irc.parse_ansi_to_irc(s_eve), s_irc) - self.assertEqual(s_eve, irc.parse_irc_to_ansi(s_irc)) - - def test_underlined(self): - pass - def test_identity(self): """ Test that the composition of the function and - its inverse gives the correct string + its inverse gives the correct string. """ - pass + + s = r'|wthis|Xis|gis|Ma|C|complex|*string' + + self.assertEqual(irc.parse_irc_to_ansi(irc.parse_ansi_to_irc(s)), s)