import pytest from dirty_equals import IsList from dmp.tiktok.models import TikTokUserConnection from dmp.tiktok.repositories import TikTokUserConnectionRepository from tests.unit.faker import FakerTyped from tests.unit.types import CreateModel class TestTikTokUserConnectionRepository: @pytest.mark.db def test_get_by_identity_id_empty_list( self, repository: TikTokUserConnectionRepository, fake: FakerTyped ) -> None: identity_id = fake.uuid4_string() user_connection = repository.get_by_identity_id(identity_id) assert user_connection == [] @pytest.mark.db def test_get_by_identity_id_return_user_connection_list( self, repository: TikTokUserConnectionRepository, create_model: CreateModel, fake: FakerTyped, ) -> None: identity_id = fake.uuid4_string() create_model(TikTokUserConnection) user_connection = create_model(TikTokUserConnection, identity_id=identity_id) user_connection_2 = create_model(TikTokUserConnection, identity_id=identity_id) result = repository.get_by_identity_id(identity_id) assert result assert len(result) == 2 assert result == IsList(user_connection, user_connection_2, check_order=False) @pytest.mark.db def test_get_by_identity_id_and_user_id_empty( self, repository: TikTokUserConnectionRepository, identity_id: str, fake: FakerTyped, ) -> None: user_connection = repository.get_by_identity_id_and_user_id( identity_id, fake.pystr() ) assert user_connection is None @pytest.mark.db def test_get_by_identity_id_and_user_id( self, repository: TikTokUserConnectionRepository, create_model: CreateModel, identity_id: str, fake: FakerTyped, ) -> None: user_id = fake.pystr() create_model( TikTokUserConnection, identity_id=identity_id, ) user_connection = create_model( TikTokUserConnection, identity_id=identity_id, user_id=user_id, ) result = repository.get_by_identity_id_and_user_id(identity_id, user_id=user_id) assert result assert result == user_connection