def test_get_award_financial_csv_sources():
    original = VALUE_MAPPINGS["award_financial"]["filter_function"]
    VALUE_MAPPINGS["award_financial"]["filter_function"] = MagicMock(returned_value="")
    csv_sources = download_generation.get_download_sources(
        {"download_types": ["award_financial"], "account_level": "treasury_account", "filters": {}}
    )
    VALUE_MAPPINGS["award_financial"]["filter_function"] = original
    assert len(csv_sources) == 1
    assert csv_sources[0].file_type == "treasury_account"
    assert csv_sources[0].source_type == "award_financial"
def test_get_awards_csv_sources():
    original = VALUE_MAPPINGS["awards"]["filter_function"]
    VALUE_MAPPINGS["awards"]["filter_function"] = MagicMock(returned_value="")
    csv_sources = download_generation.get_download_sources(
        {"download_types": ["awards"], "filters": {"award_type_codes": list(award_type_mapping.keys())}}
    )
    assert len(csv_sources) == 2
    VALUE_MAPPINGS["awards"]["filter_function"] = original
    assert csv_sources[0].file_type == "d1"
    assert csv_sources[0].source_type == "awards"
    assert csv_sources[1].file_type == "d2"
    assert csv_sources[1].source_type == "awards"
def test_idv_orders_csv_sources():
    original = VALUE_MAPPINGS["idv_orders"]["filter_function"]
    VALUE_MAPPINGS["idv_orders"]["filter_function"] = MagicMock(returned_value="")
    csv_sources = download_generation.get_download_sources(
        {
            "download_types": ["idv_orders"],
            "filters": {"award_id": 0, "award_type_codes": tuple(set(contract_type_mapping) | set(idv_type_mapping))},
        }
    )
    assert len(csv_sources) == 1
    VALUE_MAPPINGS["idv_orders"]["filter_function"] = original
    assert csv_sources[0].file_type == "d1"
    assert csv_sources[0].source_type == "idv_orders"
def test_idv_treasury_account_funding_csv_sources():
    original = VALUE_MAPPINGS["idv_federal_account_funding"]["filter_function"]
    VALUE_MAPPINGS["idv_federal_account_funding"]["filter_function"] = MagicMock(returned_value="")
    csv_sources = download_generation.get_download_sources(
        {
            "download_types": ["idv_federal_account_funding"],
            "account_level": "treasury_account",
            "filters": {"award_id": 0},
        }
    )
    assert len(csv_sources) == 1
    VALUE_MAPPINGS["idv_federal_account_funding"]["filter_function"] = original
    assert csv_sources[0].file_type == "treasury_account"
    assert csv_sources[0].source_type == "idv_federal_account_funding"