"""Test Apple Financial generators module.""" import pytest from feed_ingestion.flows.apple_financial import config from feed_ingestion.flows.apple_financial import generators class TestGenerators: """Test generators.""" maxDiff = None @pytest.fixture def context(self): """Return necessary context.""" context = { 'bootstrap.feed_name': 'apple_financial', 'bootstrap.date': '2024-09-01', 'bootstrap.s3_archive_path': 's3://dev-cucumbers/AppleFinancial/archives/2024-09/', 'bootstrap.s3_bucket': 'dev-cucumbers', 'bootstrap.file_pattern': '.+S2.+ZZ.txt.gz', 'bootstrap.apple_reports': [ ['ORCHARD', 'AppleMusicSummary'], ['IODA', 'AppleMusicSummary'], ['BFM_IODA', 'AppleMusicSummary'], ['FINETUNES', 'AppleMusicSummary'], ['RELAPSE', 'AppleMusicSummary'], ['IRIS', 'AppleMusicSummary'], ['PHONOFILE', 'AppleMusicSummary'], ['DKUA', 'AppleMusicSummary'], ['BFM_ORCHARD', 'AppleMusicSummary'], ['PRIDDIS', 'AppleMusicSummary'], ['RDA', 'AppleMusicSummary'] ], 'bootstrap.snowflake_error_limit': config.snowflake_error_limit, 'check_files_on_s3.source_files_dict': { 'files': [ {'file_name': 'S2_80028547_0924_ZZ.txt.gz', 'found': True}, {'file_name': 'S2_80028967_0924_ZZ.txt.gz', 'found': True}, {'file_name': 'S2_80029727_0924_ZZ.txt.gz', 'found': True}, {'file_name': 'S2_80031727_0924_ZZ.txt.gz', 'found': True}, {'file_name': 'S2_80031813_0924_ZZ.txt.gz', 'found': True} ] }, 'process_drop_files.reports_to_ingest': [ {'report': 'AppleMusicSummary', 'filename': 'S2_80028967_0924_ZZ_AppleMusicSummary.txt.gz'}, {'report': 'AppleMusicRoyaltyCalculation', 'filename': 'S2_80028967_0924_ZZ_AppleMusicRoyaltyCalculation.txt.gz' }, {'report': 'LinearRadioService', 'filename': 'S2_80028967_0924_ZZ_LinearRadioService.txt.gz'}, {'report': 'AppleMusicFooter', 'filename': 'S2_80028967_0924_ZZ_AppleMusicFooter.txt.gz'} ], } return context def test_itunes_reports_generator(self, context): """Test itunes_reports_generator.""" generator = list(generators.itunes_reports_generator(context)) count = len(config.apple_reports) assert len(generator) == count def test_process_drop_files_generator(self, context): """Test process_drop_files_generator.""" generator = list(generators.process_drop_files_generator(context)) assert len(generator) == 1 def test_temp_staging_raw_generator(self, context): """Test temp_staging_raw_generator.""" generator = list(generators.temp_staging_raw_generator(context)) assert len(generator) == 4 def test_populate_staging_raw_generator(self, context): """Test populate_staging_raw_generator.""" generator = list(generators.populate_staging_raw_generator(context)) assert len(generator) == 4