Coverage for src/app/services/validation_service.py: 100%

10 statements  

« prev     ^ index     » next       coverage.py v7.7.0, created at 2025-04-03 00:42 +0200

1from ports.validation_port import ValidationPort 

2from models.user_model import UserModel 

3 

4class ValidationService: 

5 """ 

6 The ValidationService class is responsible for validating user data. 

7 """ 

8 

9 def __init__(self, validation_port: ValidationPort): 

10 self.validation_port = validation_port 

11 

12 def validate_registration(self, user_model: UserModel) -> None: 

13 """ 

14 Validates the user registration based on database constraints. 

15  

16 Args: 

17 user_model (UserModel): The user model to validate. 

18  

19 Raises: 

20 ValueError: If email or username already exists. 

21 """ 

22 # Check if username already exists  

23 if self.validation_port.get_user_by_username(user_model.get_username()): 

24 raise ValueError("Username is already taken.") 

25 

26 # Check if email already exists  

27 if self.validation_port.get_user_by_email(user_model.get_email()): 

28 raise ValueError("Email is already in use.") 

29 

30