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

1# SPDX-FileCopyrightText: 2025 Arcangelo Massari <arcangelo.massari@unibo.it> 

2# 

3# SPDX-License-Identifier: ISC 

4 

5import logging 

6 

7from crowdsourcing.archive_manager import ArchiveManager 

8 

9# Configure logging 

10logging.basicConfig(level=logging.INFO) 

11logger = logging.getLogger(__name__) 

12 

13 

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() 

19 

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") 

26 

27 except Exception as e: 

28 logger.error(f"Error during report archival: {e}") 

29 raise 

30 

31 

32if __name__ == "__main__": # pragma: no cover 

33 check_and_archive_reports()