"""Test countries_config.py.""" import datetime import pytest from feed_ingestion.flows.amazon_music import config from feed_ingestion.flows.amazon_music import countries_config def test_jenkins_config(): assert config.jenkins_config['feeds_required_for_jenkins_build'] == [ 'amazon_music_theorchard_unlimited', 'amazon_music_theorchard_prime', 'amazon_music_theorchard_adsupported', 'amazon_music_sme_unlimited', 'amazon_music_sme_prime', 'amazon_music_sme_adsupported' ] @pytest.mark.parametrize('rules', [ countries_config.sme_prime_rules, countries_config.sme_adsupported_rules, countries_config.sme_unlimited_rules, countries_config.theorchard_prime_rules, countries_config.theorchard_adsupported_rules, countries_config.theorchard_unlimited_rules, ]) def test_rules_for_all_reports(rules): """This test checks rules from real config for consistency.""" prev_period_start = None for rule in rules: period_start_str = rule['since'] period_start = datetime.datetime.\ strptime(period_start_str, config.DATE_FORMAT).date() assert period_start if prev_period_start: assert period_start > prev_period_start, \ 'Rule since parameter should be ascending' prev_period_start = period_start @pytest.mark.parametrize('date_str, expected', [ ('2017-10-30', {'ABCD': ['AT', 'US']}), ('2017-10-31', {'ABCD': ['AT', 'DE', 'US']}), ('2020-01-01', {'ABCD': ['AT', 'DE', 'US']}), ]) def test_lookup(date_str, expected): """Test _lookup function.""" rules = [ {'since': '2017-10-30', 'config': {'ABCD': 'AT,US'}}, # noqa: E501 {'since': '2017-10-31', 'config': {'ABCD': 'AT,DE,US'}}, # noqa: E501 ] date_parsed = datetime.datetime.\ strptime(date_str, config.DATE_FORMAT).date() assert countries_config._lookup(rules, date_parsed) == expected