def delete_old_data() -> None: """ Periodically (default: every day, at midnight) delete data older than DATA_RETENTION_DAYS days (default: 14). Deleted data comprises (i) Upload and (ii) BatchFile models. """ reference_date = datetime.combine( date.today(), datetime.min.time()) - timedelta(days=config.DATA_RETENTION_DAYS) # Make sure there are no unprocessed uploads in the data about to be deleted. if Upload.unprocessed_before(reference_date): _LOGGER.error( "Some Upload objects were unprocessed until deleted! This should never happen!" ) Upload.delete_older_than(reference_date) BatchFile.delete_older_than(reference_date)
def test_delete_old_batches(batch_files: List[BatchFile]) -> None: BatchFile.delete_older_than(datetime.utcnow() - timedelta(days=8, seconds=1)) assert BatchFile.objects.count() == 9