def test_delete_expired(self): q = Export.by_role_id(self.role_email.id) assert q.count() == 3, q.count() delete_expired_exports() q = Export.by_role_id(self.role_email.id) assert q.count() == 1, q.count() exp1 = Export.by_id(self.export1.id, deleted=False) assert exp1 is not None assert exp1.deleted is False exp2 = Export.by_id(self.export2.id, deleted=True) assert exp2 is not None assert exp2.deleted is True path = archive.load_file(self.export1.content_hash) assert path is not None assert path.exists() exp1.expires_at = datetime.utcnow() + timedelta(days=-1) db.session.add(exp1) db.session.commit() delete_expired_exports() q = Export.by_role_id(self.role_email.id) assert q.count() == 0, q.count() exp1 = Export.by_id(self.export1.id, deleted=True) assert exp1 is not None assert exp1.deleted is True path = archive.load_file(self.export1.content_hash) assert path is not None, path path = archive.load_file(self.export3.content_hash) assert path is None, path
def run_often(self): log.info("Self-check...") self.cleanup_jobs() compute_collections() if self.hourly.check(): self.hourly.update() log.info("Running hourly tasks...") check_alerts() delete_expired_exports() if self.daily.check(): self.daily.update() log.info("Running daily tasks...") generate_digest() update_roles()
def periodic(self): with app.app_context(): db.session.remove() if self.often.check(): self.often.update() log.info("Self-check...") self.cleanup_jobs() compute_collections() if self.daily.check(): self.daily.update() log.info("Running daily tasks...") check_alerts() generate_digest() update_roles() delete_expired_exports()