import pytest from app.models import BatchRecipient, Campaign, CampaignBatch, Domain from app.repositories import BatchRecipientRepository from tests.unit.types import CreateModel class TestBatchRecipientRepository: @pytest.mark.db def test_iter_next_in_batch( self, repository: BatchRecipientRepository, create_model: CreateModel ) -> None: domain = create_model(Domain) campaign = create_model(Campaign, domain_id=domain.id) batch = create_model(CampaignBatch, campaign_id=campaign.id) create_model(BatchRecipient, batch_id=batch.id, fan_email="fan1@mail.com") create_model(BatchRecipient, batch_id=batch.id, fan_email="fan2@mail.com") create_model(BatchRecipient, batch_id=batch.id, fan_email="fan3@mail.com") create_model(BatchRecipient, batch_id=batch.id, fan_email="fan4@mail.com") create_model(BatchRecipient, batch_id=batch.id, fan_email="fan5@mail.com") result = list( repository.iter_next_in_batch(batch_id=batch.id, limit=2, offset=2) ) assert len(result) == 2 assert result[0].fan_email == "fan3@mail.com" assert result[1].fan_email == "fan4@mail.com"