3
0
Fork 0

fix: track column-only labels separately for grid

otherwise `set_label(.., column_only=True)` would not "remember" that
the caller requested column only, e.g. when extra filters are added
after the fact
This commit is contained in:
Lance Edgar 2026-02-20 14:26:35 -06:00
parent c4f735fda8
commit 97e5a96cd6
3 changed files with 87 additions and 21 deletions

View file

@ -198,17 +198,48 @@ class TestGrid(WebTestCase):
# can replace label
grid.set_label("name", "Different")
self.assertEqual(grid.labels["name"], "Different")
self.assertEqual(grid.get_label("name"), "Different")
self.assertEqual(grid.get_filter_label("name"), "Different")
self.assertEqual(grid.get_column_label("name"), "Different")
# can update only column, not filter
self.assertEqual(grid.labels, {"name": "Different"})
self.assertEqual(grid.column_labels, {})
self.assertIn("name", grid.filters)
self.assertEqual(grid.filters["name"].label, "Different")
grid.set_label("name", "COLUMN ONLY", column_only=True)
self.assertEqual(grid.get_label("name"), "COLUMN ONLY")
self.assertEqual(grid.filters["name"].label, "Different")
self.assertEqual(grid.get_column_label("name"), "COLUMN ONLY")
self.assertEqual(grid.get_filter_label("name"), "Different")
def test_get_filter_label(self):
grid = self.make_grid(columns=["foo", "bar"])
self.assertEqual(grid.labels, {})
# default derived from key
self.assertEqual(grid.get_filter_label("foo"), "Foo")
# can override
grid.set_label("foo", "Different")
self.assertEqual(grid.get_filter_label("foo"), "Different")
def test_get_column_label(self):
grid = self.make_grid(columns=["foo", "bar"])
self.assertEqual(grid.labels, {})
# default derived from key
self.assertEqual(grid.get_column_label("foo"), "Foo")
# can override "globally"
grid.set_label("foo", "Different")
self.assertEqual(grid.get_column_label("foo"), "Different")
# can override for "just column"
grid.set_label("foo", "Col Lbl", column_only=True)
self.assertEqual(grid.get_column_label("foo"), "Col Lbl")
def test_get_label(self):
# nb. the get_label() method is deprecated; can remove this
# test eventually
grid = self.make_grid(columns=["foo", "bar"])
self.assertEqual(grid.labels, {})