Fix TUI widgets color bleedthru

This commit is contained in:
Javanaut
2026-04-13 12:00:38 +02:00
parent cbf43e5d6c
commit d9639561ce
8 changed files with 582 additions and 241 deletions

View File

@@ -23,6 +23,21 @@ class StaticConfig:
return self._data
class FakeTagTable:
def __init__(self):
self.rows = {}
self._next_index = 0
def clear(self):
self.rows.clear()
def add_row(self, *values):
row_key = f"row-{self._next_index}"
self._next_index += 1
self.rows[row_key] = tuple(values)
return row_key
class ScreenSupportTests(unittest.TestCase):
def make_context(self):
return {
@@ -81,6 +96,32 @@ class ScreenSupportTests(unittest.TestCase):
controllers,
)
def test_populate_tag_table_keeps_raw_values_outside_display_labels(self):
table = FakeTagTable()
row_data = screen_support.populate_tag_table(
table,
{"BPS": 4835, "KEEP": "plain"},
ignore_keys=["KEEP"],
remove_keys=["BPS"],
)
self.assertEqual(
{
"row-0": ("BPS", "4835"),
"row-1": ("KEEP", "plain"),
},
row_data,
)
self.assertEqual(
("[red]BPS[/red]", "[red]4835[/red]"),
table.rows["row-0"],
)
self.assertEqual(
("[blue]KEEP[/blue]", "[blue]plain[/blue]"),
table.rows["row-1"],
)
if __name__ == "__main__":
unittest.main()