Test UsageΒΆ
What follows is a brief example of setting up filter/sort/content tests using GridBase:
class TestTemporalGrid(webgrid.testing.GridBase):
grid_cls = TemporalGrid
sort_tests = (
('createdts', 'persons.createdts'),
('due_date', 'persons.due_date'),
('start_time', 'persons.start_time'),
)
@property
def filters(self):
# This could be assigned as a class attribute, or made into a method
return (
('createdts', 'eq', dt.datetime(2018, 1, 1, 5, 30),
"WHERE persons.createdts = '2018-01-01 05:30:00.000000'"),
('due_date', 'eq', dt.date(2018, 1, 1), "WHERE persons.due_date = '2018-01-01'"),
('start_time', 'eq', dt.time(1, 30).strftime('%I:%M %p'),
"WHERE persons.start_time = CAST('01:30:00.000000' AS TIME)"),
)
def setup_method(self, _):
Person.delete_cascaded()
Person.testing_create(
createdts=dt.datetime(2018, 1, 1, 5, 30),
due_date=dt.date(2019, 5, 31),
start_time=dt.time(1, 30),
)
def test_expected_rows(self):
# Passing a tuple of tuples, since headers can be more than one row (i.e. grouped columns)
self.expect_table_header((('Created', 'Due Date', 'Start Time'), ))
self.expect_table_contents((('01/01/2018 05:30 AM', '05/31/2019', '01:30 AM'), ))