def test_string_comparison(self, table_): filter_ = Filter(table_, "name = parrot") assert filter_.table == [ { "id": 1, "owner_id": 2, "name": "parrot" }, ]
def test_string_contains(self, table_): filter_ = Filter(table_, "name LIKE par") assert filter_.table == [ { "id": 1, "owner_id": 2, "name": "parrot" }, ]
def test_double_logical_filtering(self, table_): filter_ = Filter(table_, "id = 3 OR owner_id = 2") assert filter_.table == [ { "id": 1, "owner_id": 2, "name": "parrot" }, { "id": 3, "owner_id": 1, "name": "cat" }, ]
def test_simple_filtering(self, table_): filter_ = Filter(table_, "id > 1 AND owner_id = 1") assert filter_.table == [ { "id": 2, "owner_id": 1, "name": "dog" }, { "id": 3, "owner_id": 1, "name": "cat" }, ]
def recent(tags = []): query = Select( filter = Filter.recent() & Filter.tags(tags), order = Order.start_date(reverse = True)) return query.execute(cursor())
def upcoming(tags = []): query = Select( filter = Filter.upcoming() & Filter.tags(tags), order = Order.start_date()) return query.execute(cursor())
def deadlines(tags = []): query = Select( filter = Filter.upcomingDeadlines() & Filter.tags(tags), order = Order.deadline()) return query.execute(cursor())