Coverage for src/jtech_installer/detector/prerequisites.py: 57%

14 statements  

« prev     ^ index     » next       coverage.py v7.8.0, created at 2025-08-20 15:10 -0300

1""" 

2Prerequisites checker for JTECH™ Installer 

3""" 

4 

5from packaging import version 

6 

7from jtech_installer.core.exceptions import SystemRequirementError 

8from jtech_installer.core.models import SystemInfo 

9 

10 

11class PrerequisitesChecker: 

12 """Verifica pré-requisitos do sistema""" 

13 

14 MINIMUM_PYTHON_VERSION = "3.12.0" 

15 

16 def check_all(self, system_info: SystemInfo) -> None: 

17 """Verifica todos os pré-requisitos""" 

18 self._check_python_version(system_info.python_version) 

19 self._check_git(system_info.git_available) 

20 # VS Code é opcional 

21 

22 def _check_python_version(self, python_version: str) -> None: 

23 """Verifica se a versão do Python é adequada""" 

24 if version.parse(python_version) < version.parse( 

25 self.MINIMUM_PYTHON_VERSION 

26 ): 

27 raise SystemRequirementError( 

28 f"Python {self.MINIMUM_PYTHON_VERSION}+ é obrigatório. " 

29 f"Versão atual: {python_version}" 

30 ) 

31 

32 def _check_git(self, git_available: bool) -> None: 

33 """Verifica se Git está disponível""" 

34 if not git_available: 

35 raise SystemRequirementError( 

36 "Git é obrigatório mas não foi encontrado. " 

37 "Por favor, instale Git antes de continuar." 

38 )