From 66ed25b885e56b41efb403bcc6fee56eed11b10d Mon Sep 17 00:00:00 2001 From: Griatch Date: Sat, 11 Apr 2020 20:40:15 +0200 Subject: [PATCH] Correct unit tests for grid generator --- evennia/utils/tests/test_utils.py | 14 ++------------ evennia/utils/utils.py | 6 ++++-- 2 files changed, 6 insertions(+), 14 deletions(-) diff --git a/evennia/utils/tests/test_utils.py b/evennia/utils/tests/test_utils.py index b76d6f1275..d685ef090d 100644 --- a/evennia/utils/tests/test_utils.py +++ b/evennia/utils/tests/test_utils.py @@ -264,8 +264,6 @@ class TestFormatGrid(TestCase): """Grid with small variations""" elements = self._generate_elements(3, 1, 30) rows = utils.format_grid(elements, width=78) - for row in rows: - print(f"'{row}'", len(row)) self.assertEqual(len(rows), 3) self.assertTrue(all(len(row) == 78 for row in rows)) @@ -273,8 +271,6 @@ class TestFormatGrid(TestCase): """Grid with big variations""" elements = self._generate_elements(3, 15, 30) rows = utils.format_grid(elements, width=82, sep=" ") - for row in rows: - print(f"'{row}'", len(row)) self.assertEqual(len(rows), 8) self.assertTrue(all(len(row) == 82 for row in rows)) @@ -282,8 +278,6 @@ class TestFormatGrid(TestCase): """Grid with very long strings""" elements = self._generate_elements(70, 20, 30) rows = utils.format_grid(elements, width=78) - for row in rows: - print(f"'{row}'", len(row)) self.assertEqual(len(rows), 30) self.assertTrue(all(len(row) == 78 for row in rows)) @@ -293,19 +287,15 @@ class TestFormatGrid(TestCase): "copy", "cpattr", "desc", "destroy", "dig", "examine", "find", "force", "lock") rows = utils.format_grid(elements, width=78) - for row in rows: - print(f"'{row}'", len(row)) self.assertEqual(len(rows), 2) for element in elements: - self.assertTrue(element in rows, f"element {element} is missing.") + self.assertTrue(element in "\n".join(rows), f"element {element} is missing.") def test_breakline(self): """Grid with line-long elements in middle""" elements = self._generate_elements(6, 4, 30) elements[10] = elements[20] = "-" * 78 rows = utils.format_grid(elements, width=78) - for row in rows: - print(f"'{row}'", len(row)) self.assertEqual(len(rows), 8) for element in elements: - self.assertTrue(element in rows, f"element {element} is missing.") + self.assertTrue(element in "\n".join(rows), f"element {element} is missing.") diff --git a/evennia/utils/utils.py b/evennia/utils/utils.py index f723e6ee5c..162aa879ad 100644 --- a/evennia/utils/utils.py +++ b/evennia/utils/utils.py @@ -1744,6 +1744,8 @@ def format_grid(elements, width=78, sep=" ", verbatim_elements=None): elements = [elements[ie] + sep for ie in range(nelements - 1)] + [elements[-1]] wls = [len(elem) for elem in elements] wls_percentile = [wl for iw, wl in enumerate(wls) if iw not in verbatim_elements] + # from pudb import debugger + # debugger.Debugger().set_trace() # get the nth percentile as a good representation of average width averlen = int(percentile(sorted(wls_percentile), 0.9)) + 2 # include extra space @@ -1752,10 +1754,10 @@ def format_grid(elements, width=78, sep=" ", verbatim_elements=None): if aver_per_row == 1: # one line per row, output directly since this is trivial # we use rstrip here to remove extra spaces added by sep - return "\n".join( + return [ crop(element.rstrip(), width) + " " * max(0, width - len(element.rstrip())) for iel, element in enumerate(elements) - ) + ] indices = [averlen * ind for ind in range(aver_per_row - 1)]