import faker import pytest from fansifter_common.identifiers.types import FansifterProfileIdentifier from preference_center.profile.handlers import GetProfileHandler, GetProfileRequest from preference_center.profile.models import Profile from tests.unit.types import CreateModel, CreateProfileToken class TestGetProfileHandler: @pytest.mark.db def test_get_profile( self, handler: GetProfileHandler, create_model: CreateModel, create_profile_token: CreateProfileToken, ) -> None: profile = create_model(Profile) token = create_profile_token(FansifterProfileIdentifier(profileId=profile.id)) result = handler.handle(GetProfileRequest(token=token, ip_country="EE")) assert result.id == profile.id assert result.date_of_birth @pytest.mark.db def test_get_profile_date_of_birth_restricted( self, handler: GetProfileHandler, create_model: CreateModel, create_profile_token: CreateProfileToken, faker: faker.Faker, ) -> None: date_of_birth = faker.date_of_birth(minimum_age=18) profile = create_model(Profile, date_of_birth=date_of_birth) token = create_profile_token(FansifterProfileIdentifier(profileId=profile.id)) result = handler.handle(GetProfileRequest(ip_country="US", token=token)) assert result.id == profile.id assert result.date_of_birth is None