Coverage for crowdsourcing / archive_reports.py: 100%
16 statements
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-21 14:31 +0000
« prev ^ index » next coverage.py v7.13.5, created at 2026-03-21 14:31 +0000
1# SPDX-FileCopyrightText: 2025 Arcangelo Massari <arcangelo.massari@unibo.it>
2#
3# SPDX-License-Identifier: ISC
5import logging
7from crowdsourcing.archive_manager import ArchiveManager
9# Configure logging
10logging.basicConfig(level=logging.INFO)
11logger = logging.getLogger(__name__)
14def check_and_archive_reports() -> None:
15 """Check if reports need to be archived and archive them if necessary."""
16 try:
17 logger.info("Starting report archival check")
18 archive_manager = ArchiveManager()
20 if archive_manager.needs_archival():
21 logger.info("Archival threshold reached, starting archival process")
22 doi = archive_manager.archive_reports()
23 logger.info(f"Successfully archived reports. DOI: {doi}")
24 else:
25 logger.info("Archival threshold not reached, no action needed")
27 except Exception as e:
28 logger.error(f"Error during report archival: {e}")
29 raise
32if __name__ == "__main__": # pragma: no cover
33 check_and_archive_reports()