def test_future(self): days = 7 u_exp5 = User(username='******', password='******', email='.') u_exp5.add_paid_time(timedelta(days=5)) self.session.add(u_exp5) u_exp10 = User(username='******', password='******', email='.') u_exp10.add_paid_time(timedelta(days=10)) self.session.add(u_exp10) # Same, with last_expiry_notice u_exp5l = User(username='******', password='******', email='.') u_exp5l.last_expiry_notice = datetime.now() - timedelta(days=1) u_exp5l.add_paid_time(timedelta(days=5)) self.session.add(u_exp5l) u_exp5ll = User(username='******', password='******', email='.') u_exp5ll.last_expiry_notice = datetime.now() - timedelta(days=30) u_exp5ll.add_paid_time(timedelta(days=5)) self.session.add(u_exp5ll) u_exp5 = self.session.query(User).filter_by(username='******').one() u_exp10 = self.session.query(User).filter_by(username='******').one() u_exp5l = self.session.query(User).filter_by(username='******').one() u_exp5ll = self.session.query(User).filter_by(username='******').one() users = expire_mail.get_future_expire(days) self.assertIn(u_exp5, users) self.assertNotIn(u_exp10, users) self.assertNotIn(u_exp5l, users) self.assertIn(u_exp5ll, users)