import faker import pytest from preference_center.profile.models import Profile from preference_center.profile.repositories import ProfileRepository from tests.unit.types import CreateModel class TestProfileV2Repository: @pytest.mark.db def test_get_by_crm_id_does_not_exist(self, repository: ProfileRepository) -> None: result = repository.get_by_crm_id("not-exist") assert result is None @pytest.mark.db def test_get_by_crm_id( self, repository: ProfileRepository, create_model: CreateModel, faker: faker.Faker, ) -> None: crm_id = faker.uuid4() create_model(Profile, crm_id=crm_id) result = repository.get_by_crm_id(crm_id) assert result assert result.crm_id == crm_id @pytest.mark.db def test_get_by_crm_id_deleted( self, repository: ProfileRepository, create_model: CreateModel, faker: faker.Faker, ) -> None: crm_id = faker.uuid4() create_model(Profile, crm_id=crm_id, deleted=True) result = repository.get_by_crm_id(crm_id) assert not result @pytest.mark.db def test_get_by_id_does_not_exist(self, repository: ProfileRepository) -> None: result = repository.get_by_id("not-exist") assert result is None @pytest.mark.db def test_get_by_id( self, repository: ProfileRepository, create_model: CreateModel ) -> None: profile = create_model(Profile) result = repository.get_by_id(profile.id) assert result assert result.id == profile.id @pytest.mark.db def test_get_by_id_deleted( self, repository: ProfileRepository, create_model: CreateModel, ) -> None: profile = create_model(Profile, deleted=True) result = repository.get_by_id(profile.id) assert not result @pytest.mark.db def test_get_by_email( self, repository: ProfileRepository, create_model: CreateModel ) -> None: create_model(Profile, email="test@mail.com") result = repository.get_by_email("TEST@mail.com") assert result assert result.email == "test@mail.com" @pytest.mark.db def test_get_by_email_deleted( self, repository: ProfileRepository, create_model: CreateModel, ) -> None: create_model(Profile, email="test@mail.com", deleted=True) result = repository.get_by_email("TEST@mail.com") assert not result