def test_lens_db_filter(db): filter = Lens(namespace_id=NAMESPACE_ID, subject=subject) assert filter.message_query(db.session).count() == 1 assert filter.thread_query(db.session).count() == 1 filter = Lens(namespace_id=NAMESPACE_ID, any_email=delivered_to) assert filter.message_query(db.session).count() > 1 assert filter.thread_query(db.session).count() > 1 filter = Lens(namespace_id=NAMESPACE_ID, any_email=sender) assert filter.message_query(db.session).count() == 1 assert filter.thread_query(db.session).count() == 1 early_time = received_date - datetime.timedelta(hours=1) late_time = received_date + datetime.timedelta(hours=1) early_ts = calendar.timegm(early_time.utctimetuple()) late_ts = calendar.timegm(late_time.utctimetuple()) filter = Lens(namespace_id=NAMESPACE_ID, subject=subject, started_before=early_ts) assert filter.thread_query(db.session).count() == 0 assert filter.message_query(db.session).count() == 0 filter = Lens(namespace_id=NAMESPACE_ID, subject=subject, started_before=late_ts) assert filter.thread_query(db.session).count() == 1 assert filter.message_query(db.session).count() == 1 filter = Lens(namespace_id=NAMESPACE_ID, subject=subject, last_message_after=early_ts) assert filter.thread_query(db.session).count() == 1 assert filter.message_query(db.session).count() == 1 filter = Lens(namespace_id=NAMESPACE_ID, subject=subject, last_message_after=late_ts) assert filter.thread_query(db.session).count() == 0 assert filter.message_query(db.session).count() == 0 filter = Lens(namespace_id=NAMESPACE_ID, subject=subject, last_message_before=early_ts) assert filter.thread_query(db.session).count() == 0 assert filter.message_query(db.session).count() == 0 filter = Lens(namespace_id=NAMESPACE_ID, subject=subject, last_message_before=late_ts) assert filter.thread_query(db.session).count() == 1 assert filter.message_query(db.session).count() == 1 filter = Lens(namespace_id=NAMESPACE_ID, to_addr=to_addr, from_addr=from_addr) assert filter.thread_query(db.session).count() == 1 assert filter.message_query(db.session).count() == 1 filter = Lens(namespace_id=NAMESPACE_ID, to_addr='*****@*****.**') assert filter.thread_query(db.session, limit=3).count() == 3 assert filter.message_query(db.session, limit=3).count() == 3